我有以下问题。这实际上是我对“您的意思是”查询的实现。如果仅使用一个索引,则结果非常合适。如果我使用multiple indices,将不会得到任何结果。
此查询仅适用于单个索引吗?
GET index1/_search
{
"suggest": {
"text": "exmple",
"multi_phrase": {
"phrase": {
"field": "all",
"size": 5,
"gram_size": 3,
"collate": {
"query": {
"source": {
"bool": {
"must": [
{
"match_all": {}
}
],
"filter": {
"multi_match": {
"query": "{{suggestion}}",
"type": "cross_fields",
"fields": [
"name",
"name2"
],
"operator": "AND",
"lenient": true
}
}
}
}
},
"params": {
"field_name": "all"
}
}
}
}
}
}
如果我针对单个索引尝试此查询,则一切正常。如果我使用多个索引,则结果为空。
{
"took": 2,
"timed_out": false,
"_shards": {
"total": 2,
"successful": 2,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 0,
"max_score": 0,
"hits": []
},
"suggest": {
"multi_phrase": [
{
"text": "example",
"offset": 0,
"length": 9,
"options": []
}
]
}
}
答案 0 :(得分:0)
我自己找到了解决方案。我必须使用confidence parameter。
置信度定义了应用于输入短语的因子 分数,用作其他建议候选人的门槛。只要 分数高于阈值的候选人将包括在 结果。例如,置信水平为1.0只会返回 得分高于输入词组的建议。如果设置为0.0 返回前N名候选人。默认值为1.0。