簡體   English   中英

ElasticSearch-搜索精確的文本匹配項而不在索引中保留兩個副本?

[英]ElasticSearch - Searching for exact text match without keeping two copies in index?

如果字段映射包含"index" : "not_analyzed"則在ElasticSearch中支持文本的完全匹配。 這樣,該字段將不會被標記化,ES將使用整個字符串進行精確匹配。 文檔資料

有沒有一種方法可以同時支持全文本搜索和精確匹配,而不必創建兩個字段:一個用於全文本,另一個具有not_analyzed映射用於精確匹配?

一個用例示例:

我們想按書名搜索。

  • I like trees應該返回全文搜索的結果

  • exact="I like trees"應該只返回具有I like trees的確切標題的書,而沒有其他內容。 不區分大小寫是可以的。

您可以使用term過濾器進行完全匹配搜索

過濾器看起來像這樣

{
   "term" {
       "key" : "value"
   }
}

查詢如下所示:

{
    "query" : {
        "filtered" : {
            "filter" : {
                "term" : { 
                    "key" : "value"
                }
            }
        }
    }
}

您無需將數據存儲在兩個不同的字段中,您想要的是ES多字段。

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/_multi_fields.html#_multi_fields

暫無
暫無

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

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