基于postgres和es完成关键字检索功能主要思路和步骤

本文介绍了如何基于postgres和elasticsearch实现关键字检索功能。首先,将postgres中的数据通过logstash同步到ES,然后通过json文件定义数据映射。最后,展示了如何从ES进行关键字查询。
摘要由CSDN通过智能技术生成

需求:

导入所有政策文件,能过通过检索关键字找到对应的文件。

工具:

postgres(基本数据库,存放表数据)、eleasticsearch(全文搜索引擎)、logstash(数据收集引擎)

简要步骤:

1.导入所有政策文件,存放文件信息到postgres数据库中,文件信息包括文件名,上传时间,文件名,文件路径,文件内容等信息。

2.安装es和logstash,logstash主要是将postgres中数据同步到es库中,es主要是将关键信息(文件内容)进行分词,便于检索。

3.写一个接口,从es库中根据关键字进行检索。

重点部分:

1.postgres如何同步到ES库中?

logstash文件夹中conf.d中有一个配置文件:logstash-pg-es.conf,该文件中定义了数据来源与数据输出。值得关注的地方有3处

input {
    jdbc {  1.数据来源是jdbc连接的数据库
        # Postgres jdbc connection string to our database, mydb
        jdbc_connection_string => "jdbc:postgresql://192.168.56.33:5432/test"
        # The user we wish to execute our statement as
        jdbc_user => "test"
        jdbc_password =>"test"
        # The path to our downloaded jdbc driver
        jdbc_driver_library => "/some/config-dir/postgresql-42.2.5.jar"
    
    #处理中文乱码问题
    codec => plain { charset => "UTF-8"}
    
     #使用其它字段追踪,而不是用时间
        #use_column_value => true
     #追踪的字段
    # tracking_column => last_modified_date
    # record_last_run => true
     #上一个sql_last_value值的存放文件路径, 必须要在文件中指定字段的初始值
         #last_run_metadata_path => "/some/config-dir/station_parameter.txt"
     #
    jdbc_paging_enabled => "true"
    jdbc_page_size => "50000"
        # The name of the driver class for Postgresql
        jdbc_driver_class => "org.postgresql.Driver"
        # our query
        statement => "select id,name as title,d

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值