gpt4 book ai didi

elasticsearch - 如何在Elasticsearch中执行快速精确匹配搜索

转载 作者:行者123 更新时间:2023-12-02 22:52:25 25 4
gpt4 key购买 nike

假设我在用户/数据中有一个用户对象:

{"_id": 123, "name": "Bob"}

并且用户有多个宠物,其中宠物文档如下所示:
{"_id": 1423, "owner": 123, "type": "cat", "name": "Prince McNugget"}
{"_id": 1830, "owner": 123, "type": "dog", "name": "Tarley"}

什么是在 flex 搜索中执行快速(即索引)搜索以查找拥有者123的所有宠物文档的正确方法(或有什么好的选择)?

我已经阅读了“完全匹配”问题的答案,该问题建议使用在字段“not_analyzed”中进行映射的方式,但是我会假设未对“not_analyzed”字段进行索引,因此数据库必须执行类似于全表扫描的操作(在这里我将其与SQL进行比较)以得出结果。这对我来说是 Not Acceptable -我需要将其作为索引搜索。

最佳答案

您可以在宠物上使用term query:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-term-query.html

{
"query": {
"term" : { "owner" : 123 }
}
}

在ES中,除非已配置为不对所有内容编制索引,否则所有内容都已编制索引,因此默认情况下它应该很快。

编辑:“not_analyzed”是mcollin解释的。它只是告诉ES不要分析数据(保留传递的数据),除非您指定 "index" : "no",否则它仍将被索引。

关于elasticsearch - 如何在Elasticsearch中执行快速精确匹配搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19941577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com