は、我々は次の属性を持っていると言うElasticsearhの試合など多くの分野
{ some_data: {}, attributes: ["US", "Facebook"] }
{ some_data: {}, attributes: ["Facebook"] }
{ some_data: {}, attributes: ["male", "AR", "LinkedIn"] }
{ some_data: {}, attributes: ["female", "US", "Facebook"] }
{ some_data: {}, attributes: ["male", "US", "LinkedIn"] }
{ some_data: {}, attributes: ["male", "US", "Facebook"] }
私はElasticsearchがいることを、次のすべてを返すようにしたいです"属性"変数を正確に一致させます。例:この例では
1) attributes: ["male", "US", "Facebook"] # All attributes match
2) attributes: ["male", "US"] # Two attributes combined match
3) attributes: ["male", "Facebook"] # Two attributes combined match
4) attributes: ["US", "Facebook"] # Two attributes combined match
5) attributes: ["male"] # Only one matches
6) attributes: ["US"] # Only one matches
7) attributes: ["Facebook"] # Only one matches
、私たちはなるだろう:
1) { some_data: {}, attributes: ["male", "US", "Facebook"] } # All match
2) { some_data: {}, attributes: ["US", "Facebook"] } # Two matches
3) { some_data: {}, attributes: ["Facebook"] } # One match
2つのことを考慮する必要があります:
1)私は、性別に一致するすべてのフィールドを望んでいません=」男性'。私は最初に与えられたフィールドの組み合わせに正確に一致する結果だけを必要とします。 2)このアルゴリズムは、n個の要素に対して使用可能でなければなりません。この例では、すべてを単純化するために3を使用しましたが、照会する属性は30個あります。
そのため、データベースには1つのクエリしか持たないといいでしょう。
[このドキュメント](HTTPS:/ /www.elastic.co/guide/en/elasticsearch/guide/current/_finding_multiple_exact_values.html#_equals_exactly)が参考になる場合があります。それはあなたが記述している質問の種類がなぜ難しいのか、とにかくそれを形成する方法を説明します。 – fylie