gpt4 book ai didi

php - ElasticSearch-用元数据排除匹配

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

我正在使用ES 6.6,并且正在搜索早于当前日期的文档。只有2个文档,但是我得到了3个项目。现有的2个文档和第三个是设置和映射。我只想得到两个文件。

我试图添加带有“exists”的过滤器,但是ES不会返回任何文档:

GET _search
{
"query": {
"bool": {
"filter": [
{
"exists": {
"field": "products"
}
},
{
"range": {
"happening_at": {
"gte": "now"
}
}
}
]
}
}
}

当我仅搜索范围时,我会收到2个正确的文档,但带有额外的“匹配”,而没有文档,仅包含设置和映射。

最佳答案

欢迎来到阿德里安(SO)。

由于您未指定任何索引名称,因此您正在跨_search索引触发all。请尝试GET <your_index_name>/_search { ... request body ...}

另外,"gte": "now"几乎不会返回任何记录,因为它意味着date greater than or equal to current date。在您的情况下,您想要记录的older比当前日期。因此,您可以使用lt:now或更好的lt:now/d,因为now/d在性能方面不错,并且可以缓存。

请尝试以下方法:

GET <your_index_name>/_search
{
"query": {
"bool": {
"filter": [
{
"exists": {
"field": "products"
}
},
{
"range": {
"happening_at": {
"lt": "now/d"
}
}
}
]
}
}
}

关于php - ElasticSearch-用元数据排除匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58544211/

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