gpt4 book ai didi

elasticsearch - 在Elasticsearch过滤器索引中查找特定查询

转载 作者:行者123 更新时间:2023-12-02 23:33:57 27 4
gpt4 key购买 nike

我试图找到保存在Percolator Index中的特定查询。尚未看到与此相关的任何文档。
SOF question之一有助于使所有查询持久保存在索引中。

我的一个示例查询在Percolator中仍然存在

curl -XPUT "http://localhost:9200/notifications/.percolator/1" -d'
{
"query" : {
"match" : {
"tags" : "elasticsearch"
}}
}'

和其他示例查询
curl -XPUT "http://localhost:9200/notifications/.percolator/4" -d'
{
"query" : {
"bool": {
"should": [
{ "term": {
"tags": "Hbase"
}
},
{ "term": {
"user": "abc"
}
}
]
, "minimum_number_should_match": 1
}
}
}'

有什么办法可以拉特定查询?基于以上示例,我想找到一个与用户匹配的查询:“abc”

最佳答案

因此,在您的示例中,如果我们只是将minimum_should_match更新为2而不是1,我们将无法将percolator API与

{
"doc" : {
"user" : "abc"
}
}

以获取您想要的查询。

这是一个主意:

基于 Percolator Docs,过滤器索引中存储的查询的默认映射为:
{
".percolator" : {
"properties" : {
"query" : {
"type" : "object",
"enabled" : false
}
}
}
}

您可能会使用适当的分析器在新字段中更新此映射,这将使您可以按所需方式搜索查询,而无需提供文档来查找将返回文档的查询。假设此新字段为 custom_query_rep,其中可能包含查询的某种表示形式(例如查询的JSON.stringify(query)版本),该表示形式是您在使用渗滤器为查询建立索引时指定的。这将允许您使用以下查询来查询过滤器索引:
{
"query" : {
"bool" : {
"must" : [
{ "match" : { "custom_query_rep" : "user" } },
{ "match" : { "custom_query_rep" : "abc" } }
]
}
}
}

当然,这是一个非常简单的案例。解决方案似乎有些局限,对于更复杂的查询,需要更多的思考。

关于elasticsearch - 在Elasticsearch过滤器索引中查找特定查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33526566/

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