0

テキスト フィールド (「本文」) を検索し、提供する 2 つの複数単語フレーズ (つまり、「スタック オーバーフロー」または「スタック オーバーフロー」) の少なくとも 1 つに一致するアイテムを返す Elasticsearch クエリを実行しようとしています。また、特定のタイムスタンプの後に発生した結果のみをクエリで提供し、結果を時間順に並べたいと思います。

私の現在の解決策は以下です。MUST は正しく機能していると思いますが (gte タイムスタンプ)、2 つの match_phrases を持つ BOOL + SHOULD は正しくありません。次のエラーが表示されます。

Unexpected character ('{' (code 123)): was expecting double-quote to start field name

そこに 2 つの match_phrases があるためだと思いますか?

これは ES マッピングであり、私が使用している ES API の詳細はこちらです。

{"query":
  {"bool":
    {"should":
      [{"match_phrase":
         {"body":"a+phrase"}
       },
       {"match_phrase":
         {"body":"another+phrase"}
       }
      ]
    },
  {"bool":
    {"must":
      [{"range":
        {"created_at:
          {"gte":"thispage"}
        }
       }
      ]}
     }
    },"size":10000,
      "sort":"created_at"
}
4

0 に答える 0