[英]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多字段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.