私はelasticsearchが初めてなので、親切にしてください。
N個のタグでタグ付けされたデータを保存してクエリしようとしています。検索クエリの配列と保存されている配列を比較し、最もタグに一致する項目の順に結果を返したいと考えています。
データセットの例:
{ name: "karl", tags: ["terrible", "programmer"] }
{ name: "bob", tags: ["awesome", "programmer"] }
両方の人に一致するクエリの例:
query: { tags: ["programmer"] }
result: [karl, bob]
この例では、両方が返されますが、より多くのタグが一致したため、bob のスコアが高く、一致していないにもかかわらず、Karl がまだ表示されていawesome
ます。
query: { tags: ["programmer", "awesome"] }
result: [bob, karl]
私が持っているクローゼットはこれですが、カールよりもボブのスコアが高いようには見えません
{
"query": {
"bool": {
"should": [
{ "match": { "tags": "programmer" } },
{ "match": { "tags": "awesome" } }
],
"minimum_number_should_match": 1
}
}
}
いくつかのサポートが大好きです:-)ありがとう!