簡體   English   中英

Elasticsearch:Facet腳本和facet_filter

[英]Elasticsearch: Facet script and facet_filter

是否可以像這樣在Elasticsearch中使用構面腳本和構面過濾器?

{
  "facets": {
    "judges": {
      "terms": {
        "field": "judges.untouched",
        "size": 10,
        "all_terms": false,
        "script": { "script": "...", "params": { }}
      },
      "global_facets": false,
      "facet_filter": {
        "and": [
          {
            "query": {
              "query_string": {
                "query": "..... ",
                "fields": [
                  "judges.analyzed"
                ],
                "default_operator": "and",
                "analyze_wildcard": true
              }
            }
          }
        ]
      }
    }
  }
}

因為當我運行此查詢時,elasticsearch會引發錯誤:解析失敗[找不到[和]的構面類型]; }。

謝謝

編輯錯誤的答案。 由於上下文原因,我將其保留。 要澄清: and是一個適當的過濾器,應該由facet_filter接受。 不知道怎么了。

未經測試,但來自文檔:( http://www.elasticsearch.org/guide/reference/api/search/facets/

可以使用其他過濾器配置所有方面(在“查詢DSL”部分中進行了說明)

因此,您需要在facet_filter放置一個適當的query And不是適當的過濾器(您收到的錯誤可能會更清楚)

例如:

"facet_filter" : {
   "term" : { "user" : "kimchy"}
} 

您可能想要類似的東西:

"facet_filter" : {
   "query_string": {
      "query": "..... ",
      "fields": [
         "judges.analyzed"
      ],
      "default_operator": "and",
      "analyze_wildcard": true
   }
}

and過濾器的語法為:

"facet_filter": {
  "and": {
    "filters": [
       {
         // filter definition
       },
       {
         // another filter definition
       }
    ]
  }
}

但是您只使用一個條件,因此不需要and過濾器。 您應該只有:

   "facet_filter": {
     "query": {
       "query_string": {
         "query": "..."
       }
     }
   }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM