2016-06-11 53 views
0

我正在使用ElasticSearch並希望同時激活精確單詞和全文搜索。精確的單詞搜索工作正常與not_analyzed索引和全文搜索工作正常與分析索引。現在我想結合這兩個。下面是例子正是我想要的:ElasticSearch:將確切單詞和全文搜索結合起來

假設我有兩個記錄:

  1. 這是蘋果
  2. 蘋果

如果「蘋果」用戶搜索那麼就應該有一個結果(確切的詞搜索),但如果用戶搜索「蘋果*」,那麼必須有兩個記錄(全文搜索)。

回答

0

我可以使用elasticsearch執行精確的單詞和全文搜索。我已經將字段映射到not_analyzed索引,然後使用通配符進行全文搜索和篩選/條件以進行精確搜索。所以我完成了幾乎所有的東西。現在最後一個問題我正面臨如何爲多個字段使用通配符。

下面是通配符查詢: "query": { "wildcard": { "Field1": { "value": "*apple*" } } }

我有多個字段字段1,字段2 ....字段N。我必須爲所有文件搜索相同的值。我試過: "query": { "wildcard": { "Field1": { "value": "*apple*" } , "Field2": { "value": "*apple*" } } }

但它只顯示最後一個字段的結果(在上面的情況下是Field2)。

其實我不想查詢所有字段並將結果結合到一個結果集。我認爲必須有單個查詢才能獲得通配符的所有字段的結果。請幫幫我。

謝謝 Tarlok

相關問題