151, Elasticsearch의 연상 힌트

3210 단어 Elasticsearch

Elasticsearch 연상 힌트 구현


1 Elasticsearch의 맞춤법 오류 수정


이미 구축된articles 인덱스 라이브러리에 대해elasticsearch는 조회 모드를 제공했고suggest는 조회 모드를 제안합니다
curl 127.0.0.1:9200/articles/article/_search?pretty -d '
{
    "from": 0,
    "size": 10,
    "_source": false,
    "suggest": {
        "text": "phtyon web",
        "word-phrase": {
            "phrase": {
                "field": "_all",
                "size": 1
            }
        }
    }
}'

우리가 잘못된 키워드 phtyon 웹을 입력할 때es는 색인 라이브러리 데이터에 근거하여 정확한 맞춤법python 웹을 제공할 수 있습니다

2 Elasticsearch의 자동 보완


elasticsearch에서 제공하는 자동 완성 기능을 사용합니다. 문서의 형식 맵은 특수한 설정을 해야 하기 때문에 원래 만들어진 문장 인덱스 라이브러리는 자동 완성에 사용할 수 없습니다. 자동 완성된 인덱스 라이브러리를 다시 만들어야 합니다.
curl -X PUT 127.0.0.1:9200/completions -H 'Content-Type: application/json' -d'
{
   "settings" : {
       "index": {
           "number_of_shards" : 3,
           "number_of_replicas" : 1
       }
   }
}
'

curl -X PUT 127.0.0.1:9200/completions/_mapping/words -H 'Content-Type: application/json' -d'
{
     "words": {
          "properties": {
              "suggest": {
                  "type": "completion",
                  "analyzer": "ik_max_word"
              }
          }
     }
}
'

logstash를 사용하여 초기 데이터 가져오기


logstash_ 편집mysql_completion.conf
input{
     jdbc {
         jdbc_driver_library => "/home/python/mysql-connector-java-8.0.13/mysql-connector-java-8.0.13.jar"
         jdbc_driver_class => "com.mysql.jdbc.Driver"
         jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/toutiao?tinyInt1isBit=false"
         jdbc_user => "root"
         jdbc_password => "mysql"
         jdbc_paging_enabled => "true"
         jdbc_page_size => "1000"
         jdbc_default_timezone =>"Asia/Shanghai"
         statement => "select title as suggest from news_article_basic"
         clean_run => true
     }
}
output{
      elasticsearch {
         hosts => "127.0.0.1:9200"
         index => "completions"
         document_type => "words"
      }
}

명령 실행 데이터 가져오기


sudo/usr/share/logstash/bin/logstash -f ./logstash_mysql_completion.conf

Elasticsearch의 자동 보완 제안 조회

curl 127.0.0.1:9200/completions/words/_search?pretty -d '
{
    "suggest": {
        "title-suggest" : {
            "prefix" : "pyth", 
            "completion" : { 
                "field" : "suggest" 
            }
        }
    }
}
'

curl 127.0.0.1:9200/completions/words/_search?pretty -d '
{
    "suggest": {
        "title-suggest" : {
            "prefix" : "python web", 
            "completion" : { 
                "field" : "suggest" 
            }
        }
    }
}
'

좋은 웹페이지 즐겨찾기