簡體   English   中英

Elasticsearch多詞搜索

[英]Elasticsearch multi term search

我正在使用Elasticsearch允許用戶鍵入要搜索的術語。 例如,我要搜索以下屬性“名稱”:

'name': 'The car is black'

如果以下內容用於搜索black carcar black我想退回此文檔。

我嘗試做一個布爾值必須做多個術語['black', 'car']但似乎只有在整個字符串都是匹配的情況下它才有效。

因此,我真正想做的是,該術語是否以任何順序包含兩個詞?

有人可以讓我走上正確的路嗎? 我一直在這頭上撞了一段時間。

如果看起來只有在整個字符串都匹配時才起作用,請首先確保在索引映射中分析了字符串屬性name ,即此屬性的映射不包含 "index": "not_analyzed" 如果不是這樣,則需要重新索引索引,以便能夠搜索標記,而不是僅搜索整個短語。

一旦確定要分析字符串,就可以使用:

  1. 使用"minimum_should_match"參數等於輸入的單詞數的字詞查詢。
  2. 帶有must子句的布爾查詢,每個單詞包含詞條查詢。
  3. 除了采用更智能的停用詞分析方法外, 通用術語查詢還具有很好的簡潔語法(您無需像前面的兩個中那樣分解輸入字符串並在應用中構造更復雜的查詢結構)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM