[解決済み] elasticsearchのQuery DSLにおけるmustとfilterの違いは何ですか?
2023-02-14 10:18:33
質問
エラスティックサーチの初心者なのですが、mustとfilterの使い分けに迷っています。私は自分の用語の間でand操作を実行したいので、次のようにしました。
POST /xyz/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"city": "city1"
}
},
{
"term": {
"saleType": "sale_type1"
}
}
]
}
}
}
のようにフィルタをかけると、両方の用語にマッチする結果が得られます。
POST /xyz/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"city": "city1"
}
}
],
"filter": {
"term": {
"saleType": "sale_type1"
}
}
}
}
}
同じ結果になるのですが、どのような場合にmustを使い、どのような場合にfilterを使えばいいのでしょうか?その違いは何ですか?
どのように解決するのですか?
must
はスコアに貢献します。で
filter
では、クエリのスコアは無視されます。
の両方において
must
と
filter
のように、一致する文書に句(クエリ)が出現していなければなりません。これが同じ結果を得るための理由です。
あなたはこれを確認することができます リンク
<ブロッククオートスコア
各文書の関連性スコアは、正の浮動小数点数である
_score
. が高いほど
_score
が高いほど、より関連性の高いドキュメントとなります。
クエリ句が生成する
_score
を生成します。
スコアの計算方法については、以下を参照してください。 リンク
関連
-
[解決済み】ElasticsearchのMUSTとSHOULDの違い boolクエリ
-
[解決済み] フィルタリングされた]に[クエリ]が登録されていません。
-
[解決済み] Elasticsearch 2.0でリモートアクセス/リクエストを有効にするにはどうすればよいですか?
-
[解決済み] Logstashとelasticsearchの間のデータブローカー/メッセージングシステムとして、RedisとRabbitMQの比較
-
[解決済み] elasticsearchノードを停止/シャットダウンする方法は?
-
[解決済み] Elasticsearch 2.1: 結果ウィンドウが大きすぎる (index.max_result_window)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン