現在、私はここに文書がどのように見えるかの例です、タグの配列インデックス内の各文書を与えているelasticsearchを使用してタグの検索アプリケーションを開発する:Elasticsearch一致与えられた配列内のすべてのタグ
_source: {
title: "Keep in touch scheme",
intro: "<p>hello this is a test</p> ",
full: " <p>again this is a test mate</p>",
media: "",
link: "/training/keep-in-touch",
tags: [
"employee",
"training"
]
}
私は希望を検索を行い、指定されたすべてのタグを含むドキュメントのみを返すようにします。
上記の例を使用して、タグ["employee", "training"]
を持つドキュメントを検索すると、上記の結果が返されます。
対照的に、タグ["employee", "other"]
で検索した場合、何も返されません。検索クエリ内のすべてのタグが一致する必要があります。しかし、これが一致しているようだ、私はまた、配列を連結し、カンマで区切られた文字列を使用してみましたが
query: {
bool: {
must: [
{ match: { tags: ["employee","training"] }}
]
}
}
が、私はちょうど
IllegalStateException[Can't get text on a START_ARRAY at 1:128];
のように返された例外を取得しています:
現在、私はやっています最初のタグが指定されているものはすべて一致します。
これにアプローチする方法についてのご意見はありますか?乾杯
を照会することができます - 理想的には私は、クエリ –
に様々な長さの配列を渡すことができます@ WilliamPulもう一つの例を追加しましたが、私は '' minimum_should_match ":1'をes v2.3.2で使う方法を見つけることができません... –
@WilliamPaulまた、' query_string'で例を追加しました。 –