我對彈性搜索非常陌生。 想知道如何搜索部分多詞搜索。 \多字部分搜索
爲前: 我的文檔 { 「稱號」: 「哈利·波特」 } 我需要搜索這個文件有下列字符串 1)HAR POR 相同的SQL查詢(SELECT * FROM其中標題爲「%har%」或標題爲「%por%」的書籍)
我對彈性搜索非常陌生。 想知道如何搜索部分多詞搜索。 \多字部分搜索
爲前: 我的文檔 { 「稱號」: 「哈利·波特」 } 我需要搜索這個文件有下列字符串 1)HAR POR 相同的SQL查詢(SELECT * FROM其中標題爲「%har%」或標題爲「%por%」的書籍)
使用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"
}
}
}
}
}
謝謝,文檔位混淆,可能向我顯示搜索請求。 –
注意Elasticsearch與其他數據庫不同,不僅因爲它是NoSql,而且因爲它主要是一個搜索引擎。我建議你在開始使用它之前熟悉Elasticsearch的核心概念([this](https://www.elastic.co/guide/en/elasticsearch/guide/2.x/intro.html)):Elasticsearch是專爲全文搜索而設計,但在許多方面都比您在此詢問的功能更強大 –
它是我的一個搜索用例。任何方式我得到了一個解決方案,使用'ngram' –