2017-05-28 6 views
1

例えば、elasticsearch 5.1でクエリを作成しようとしています。例えば、著者にあらかじめ定義された著者のリストにすべての書籍を渡してください。私は著者がlet authors = ['a', 'b', 'c', 'd']Elasticsearch - 配列内の値の一部であるレコードを検索する

私は何を欠場かしている何の結果

let query = JSON.stringify({ 
     "size": 10000, 
     "query": { 
      "bool": { 
       "must": [{ 
         "term": { 
          "recordtype": "Book" 
         } 
        }, 
        { 
         "term": { 
          "recordLocation": "library" 
         } 
        } 
       ], 
       "filter": { 
        "term": { 
         "author": authors 
        } 
       } 
      } 
     } 
    }); 

を取得していないのです - 単一の作者を使用した場合、配列を渡すとき、それは働いているが、?

+2

は ' "という用語を" 用語クエリとの長期クエリーを交換してください"著者":['a'、 'b'、 'c'、 'd'] } ' – avr

+0

ありがとう - それを解決しました –

+0

うれしい!それはあなたを助けた:) – avr

答えて

0

複数のキーワードを検索する場合は、Terms Queryを使用してください。

以下に示すように、あなたのフィルタクエリを置き換えます。{ "著者":著者 } `と` "用語":{ 以下のように

"filter": { 
    "terms": { 
     "author":["a", "b, "c"] 
     } 
} 
関連する問題