所望の機能性を得るための方法の一つは、ブールクエリ内でクエリをラップすることですし、その後
小さな例を特定の文書を後押しするためにすべき句を使用します
POST test/person
{
"title": "london elise moore"
}
POST test/event
{
"title" : "london is a great city"
}
ブーストなし
:
:
GET test/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"title": "london"
}
}
]
}
}
}
次の応答に
"hits": {
"total": 2,
"max_score": 0.2972674,
"hits": [
{
"_index": "test",
"_type": "person",
"_id": "AVVx621GYvUb9aQn6r5X",
"_score": 0.2972674,
"_source": {
"title": "london elise moore"
}
},
{
"_index": "test",
"_type": "event",
"_id": "AVVx63LrYvUb9aQn6r5Y",
"_score": 0.26010898,
"_source": {
"title": "london is a great city"
}
}
]
}
そして今、追加すべき句で:
GET test/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"title": "london"
}
}
],
"should": [
{
"term": {
"_type": {
"value": "event",
"boost": 2
}
}
}
]
}
}
}
次の応答が戻っています:場合
"hits": {
"total": 2,
"max_score": 1.0326607,
"hits": [
{
"_index": "test",
"_type": "event",
"_id": "AVVx63LrYvUb9aQn6r5Y",
"_score": 1.0326607,
"_source": {
"title": "london is a great city"
}
},
{
"_index": "test",
"_type": "person",
"_id": "AVVx621GYvUb9aQn6r5X",
"_score": 0.04235228,
"_source": {
"title": "london elise moore"
}
}
]
}
あなたもすべき句、原因で余分なブーストを残すことができますそれは結果をブーストします一致する必要があります:)
これは役立ちます!
ありがとうByron。はい、Should句は結果を上げることができます。しかし、既存のクエリを変更したくないので、フィルタで同じものを使用したいのですが、選択したESタイプに応じて結果を増やすフィルタを追加します。出来ますか?はいの場合は、どうですか? – user3340357
フィルタを使用するだけでその機能を利用する方法はありません。フィルタは結果セットを絞り込みますが、特定のドキュメントを増やすためのものではありません。誰かがこれについてのアイデアを持っているかどうかは分かりません。 あなたはより良い代替案を考え出すことができるようにクエリを投稿できますか? –