私はESを初めて使用し、複数のフィールドにphrase_prefixを使用するクエリを作成しようとしているので、複数回検索する必要はありません。
これが私がこれまでに得たものです:
{
"query" : {
"text" : {
"first_name" : {
"query" : "Gustavo",
"type" : "phrase_prefix"
}
}
}
}'
「last_name」など、複数のフィールドを検索する方法を知っている人はいますか?
使用している テキストクエリ は、 一致クエリ を優先して、しばらく前に非推奨になりました(事実上名前が変更されました)。一致クエリは単一のフィールドをサポートしますが、 multi_match query を使用できます。これは、まったく同じオプションをサポートし、複数のフィールドで検索できるようにします。これがあなたに役立つはずの例です:
{
"query" : {
"multi_match" : {
"fields" : ["title", "subtitle"],
"query" : "trying out ela",
"type" : "phrase_prefix"
}
}
}
次のようなJava APIを使用して、同じことを実現できます。
QueryBuilders.multiMatchQuery("trying out ela", "title", "subtitle")
.type(MatchQueryBuilder.Type.PHRASE_PREFIX);