弾性検索でmulti_matchより完全一致を後押しする次のクエリを実行しています。しかし、期待した結果が得られません。
私の目標は、「Java開発者」> Java AND開発者> Java OR開発者
誰かがこれのトラブルシューティングを手伝ってくれる?ここでmatch_phraseを強化する方法と、match_phraseに残りのフィールドを追加する方法を知る必要があります
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": "Java developer",
"fields": [
"title",
"content",
"tags",
"summary"
]
}
}
],
"should": [
{
"match_phrase": {
"title": "Java developer"
}
},
{
"multi_match": {
"query": "Java developer",
"fields": [
"title",
"content",
"tags",
"summary"
],
"operator": "and",
"boost": 4
}
}
]
}
}
ご協力ありがとうございます。
これが私のために働いたものです:
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": "Java developer",
"fields": [
"title",
"content",
"tags",
"summary"
]
}
}
],
"should": [
{
"multi_match": {
"query": "Java developer",
"fields": [
"title",
"content",
"tags",
"summary"
],
"type": "phrase",
"boost": 10
}
},
{
"multi_match": {
"query": "Java developer",
"fields": [
"title",
"content",
"tags",
"summary"
],
"operator": "and",
"boost": 4
}
}
]
}
}
マルチマッチクエリのtypeを most_fields に設定します。
"query": {
{
"multi_match" : {
"query": "Java developer",
"type": "best_fields",
"fields": ["title", "content", "tags", "summary" ]
}
}
}