2017-05-07 70 views
-1

我對彈性搜索非常陌生。 想知道如何搜索部分多詞搜索。 \多字部分搜索

爲前: 我的文檔 { 「稱號」: 「哈利·波特」 } 我需要搜索這個文件有下列字符串 1)HAR POR 相同的SQL查詢(SELECT * FROM其中標題爲「%har%」或標題爲「%por%」的書籍)

+0

注意Elasticsearch與其他數據庫不同,不僅因爲它是NoSql,而且因爲它主要是一個搜索引擎。我建議你在開始使用它之前熟悉Elasticsearch的核心概念([this](https://www.elastic.co/guide/en/elasticsearch/guide/2.x/intro.html)):Elasticsearch是專爲全文搜索而設計,但在許多方面都比您在此詢問的功能更強大 –

+0

它是我的一個搜索用例。任何方式我得到了一個解決方案,使用'ngram' –

回答

0

使用completion suggester將提供大多數您想要的功能。它會查找以任意字符串開頭的單詞,如「har」或「por」。

Check out this question瞭解如何設置完成建議者的完整示例。

如上所述in the documentation,可以實現多詞搜索(即從「POR」的搜索返回「哈利horter」)創建您的分析與選擇preserve_position_increments設置爲false

PUT books 
{ 
    "mappings": { 
     "book" : { 
      "properties" : { 
       "suggest" : { 
        "type" : "completion", 
        "preserve_position_increments": false 
       }, 
       "title" : { 
        "type": "keyword" 
       } 
      } 
     } 
    } 
} 
+0

謝謝,文檔位混淆,可能向我顯示搜索請求。 –