TairSearchは、全文検索用の社内データ構造であり、Elasticsearchと同様の構文を使用します。 このトピックでは、TairSearchでboolクエリを使用して複合クエリを実装する方法について説明します。
構文
TairSearchは、boolクエリに対して次のタイプの句をサポートしています。
must: ドキュメントを返すために必要な要素を指定します。 この句のセマンティクスは、
AND
のセマンティクスと同様です。must_not: 返されるドキュメントに含めることができない要素を指定します。 この句のセマンティクスは、
NOT
のセマンティクスに似ています。should: 返されるドキュメントに対してオプションの要素を指定します。 この句のセマンティクスは、
OR
のセマンティクスと同様です。 この句と一緒にminimum_should_matchパラメーターを使用して、返されるドキュメントが一致する必要があるshould句の最小数を指定できます。 boolクエリにshould句のみが含まれる場合、このパラメーターは1に設定されます。 boolクエリにmust句またはmust_not句も含まれる場合、このパラメーターは0に設定されます。ドキュメントがmust句とshould句の両方に一致する場合、このドキュメントのスコアは複数のヒットの結果として増加します。 これは、結果におけるこの文書のランキングに影響します。
boolクエリのこれらの句の優先度は、must_not > must > shouldです。 さらに、boolステートメントまたはその他のステートメントをboolステートメント内にネストして、複合クエリを実装できます。 TairSearchの詳細については、「Search」をご参照ください。
例:
インデックスを作成します。
TFT.CREATEINDEX key '{ "mappings": { "properties": { "A": { "type": "keyword" }, "B": { "type": "keyword" }, "C": { "type": "keyword" } } } }'
ドキュメントデータを追加します。
TFT.ADDDOC key '{ "A": "a", "B": "b", "C": "c" }'
データの照会