gpt4 book ai didi

elasticsearch - 为什么Elastic Search返回此记录?

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

内容提要-为什么这个Elastic Search查询...

{
"query": {
"filtered": {
"filter": {
"bool": {
"should": [
{
"term": {
"document.company_id": 197
}
},
{
"term": {
"change.company_id": 197
}
},
{
"bool": {
"must": [
{
"missing": {
"field": "document.company_id"
}
},
{
"missing": {
"field": "changes.company_id"
}
},
{
"terms": {
"user.id": [
2165, 2976, ...
]
}
}
]
... (closing braces here on)

...返回此记录?
"_source" : {
"date" : "2015-03-27T09:36:41.716+00:00",
"change" : {
"company_id" : 12,
"id" : "CC-12-51"
},
"action" : "change-control-approved",
"description" : "blah blah",
"user" : {
"full_name" : "Martin Wtorkowski",
"email" : "mwtorkowski@getzendoc.com",
"id" : 40
},
"_date" : 1427445401,
"id" : 57879,
"invalid" : null
},

鉴于 must对应 ANDshould对应 OR的事实,...
  • 记录的document.company_id不为197(因此第一个OR术语不适用)
  • 记录的change.company_id不为197(它的change.company_id为12-因此第二个OR项也不适用)
  • 第三个术语:三种情况的MUST(因此为AND):(a)字段document.company_id必须丢失-并且确实丢失(b)字段change.company_id必须丢失-并且它没有丢失(c)字段user.id必须具有一组值中的一个。

  • 我可能缺少ES API的一些复杂细节-但由于3 must条件中的第2个失败,因此该记录不应该通过。

    我究竟做错了什么?

    最佳答案

    在第二个missing过滤器中,有一个错字。

    如果将changes.company_id修改为change.company_id,它应该可以正常工作。

    关于elasticsearch - 为什么Elastic Search返回此记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32184070/

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