我正在使用ElasticSearch並希望同時激活精確單詞和全文搜索。精確的單詞搜索工作正常與not_analyzed索引和全文搜索工作正常與分析索引。現在我想結合這兩個。下面是例子正是我想要的:ElasticSearch:將確切單詞和全文搜索結合起來
假設我有兩個記錄:
- 這是蘋果
- 蘋果
如果「蘋果」用戶搜索那麼就應該有一個結果(確切的詞搜索),但如果用戶搜索「蘋果*」,那麼必須有兩個記錄(全文搜索)。
我正在使用ElasticSearch並希望同時激活精確單詞和全文搜索。精確的單詞搜索工作正常與not_analyzed索引和全文搜索工作正常與分析索引。現在我想結合這兩個。下面是例子正是我想要的:ElasticSearch:將確切單詞和全文搜索結合起來
假設我有兩個記錄:
如果「蘋果」用戶搜索那麼就應該有一個結果(確切的詞搜索),但如果用戶搜索「蘋果*」,那麼必須有兩個記錄(全文搜索)。
我可以使用elasticsearch執行精確的單詞和全文搜索。我已經將字段映射到not_analyzed索引,然後使用通配符進行全文搜索和篩選/條件以進行精確搜索。所以我完成了幾乎所有的東西。現在最後一個問題我正面臨如何爲多個字段使用通配符。
下面是通配符查詢: "query": { "wildcard": { "Field1": { "value": "*apple*" } } }
我有多個字段字段1,字段2 ....字段N。我必須爲所有文件搜索相同的值。我試過: "query": { "wildcard": { "Field1": { "value": "*apple*" } , "Field2": { "value": "*apple*" } } }
但它只顯示最後一個字段的結果(在上面的情況下是Field2)。
其實我不想查詢所有字段並將結果結合到一個結果集。我認爲必須有單個查詢才能獲得通配符的所有字段的結果。請幫幫我。
謝謝 Tarlok