0

text_phrase複数のフィールドに対してクエリを使用するにはどうすればよいですか?

私の場合:
ユーザーの種類hello world。タイトルまたはコンテンツ (または両方) のフィールドに含まれるhello (cool) world-> このドキュメントを返す

4

1 に答える 1

4

boostこれを行うには、クエリを使用します。タイトルにブーストを提供するために、より高度な形式のtextクエリを使用することをお勧めします (場合によっては、フィールドの長さがスコアリングに影響するタイトル ドキュメントの基準を無効にすることも理にかなっています)。完全なサンプルは次のとおりです。

curl -XPUT localhost:9200/test -d '{
    "index.number_of_shards" : 1,
    "index.number_of_replicas" : 0
}'

curl -XPUT localhost:9200/test/type/1 -d '{
    "title" : "hello (cool) world",
    "content" : "hello (cool) world"
}'

curl -XPUT localhost:9200/test/type/2 -d '{
    "title" : "hello (cool) world",
    "content" : "xxx"
}'

curl -XPUT localhost:9200/test/type/3 -d '{
    "title" : "yyy",
    "content" : "hello (cool) world"
}'

curl -XPOST localhost:9200/test/_refresh

curl -XGET localhost:9200/test/_search?pretty -d '{
    "query" : {
        "bool" : {
            "should" : [
                {
                    "text" : {"content" : {"query" : "hello world"}}
                },
                {
                    "text" : {"title" : {"query" : "hello world", "boost" : 5}}
                }
            ]
        }
    }
}'
于 2012-06-30T21:21:07.083 に答える