2

ドキュメントで説明されているように、_percolator を使用してクエリを保存すると、次のようになります。

curl -XPUT localhost:9200/_percolator/test/kuku -d '{
  "color" : "blue",
  "query" : {
      "term" : {
        "field1" : "value1"
      }
   }
}'

このクエリは、「test」インデックスのドキュメントをパーコレートするときに実行されますが、「test」インデックスのタイプ「foo」に制限したい場合、唯一の解決策はクエリにタイプを追加することです:

curl -XPUT localhost:9200/_percolator/test/kuku -d '{
   "type":"foo",
   "color" : "blue",
   "query" : {
       "term" : {
         "field1" : "value1"
       }
  }
}'

そして、ドキュメントの使用を追加するとき

curl -XGET localhost:9200/test/type1/_percolate -d '{
   "doc" : {
      "field1" : "value1"
    },
    "query" : {
      "term" : {
         "type" : "foo"
      }
    } 
  }'

別の解決策はありますか?私は試した

curl -XPUT localhost:9200/_percolator/test/foo/kuku

しかし、それは機能しません。

4

1 に答える 1

2

別の方法は、元のクエリをフィルター処理されたクエリにラップし、_type の用語フィルターを追加することです。

{
    "query": {
        "filtered":{
            "query": {
                "term":{
                    field1" : "value1"
                }
             },
             "filter": {
                 "term": {
                     "_type" : "type1"
                 }
              }
          }
     }
}
于 2013-03-01T13:59:50.380 に答える