我正在尝试使用elasticsearch MLT(更喜欢这个)查询。
商店中只有一个文档:
{
"_index": "monitors",
"_type": "monitor",
"_id": "AVTnvJ8SancUpEdFLMiq",
"_score": 1,
"_source": {
"ProcessGroup": "test",
"ProcessName": "test",
"OpName": "test",
"Domain": "test",
"LogLevel": "Info",
"StartDateTime": "2016-05-04 04:46:47",
"EndDateTime": "2016-05-04 04:47:47",
"MessageDateTime": "2016-05-04 04:46:47",
"ApplicationCode": "test",
"Status": "10",
}
}
查询:
POST /_search
{
"query": {
"more_like_this" : {
"fields" : ["ProcessName"],
"like" : "test",
"min_term_freq" : 1,
"max_query_terms" : 12
}
}
}
ProcessName
是未分析的字段。
我被期望得到这份文件作为答复,但我得到了nada:
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 2,
"successful": 2,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
为什么?
另一个问题:
假设我有搜索引擎文档,我搜索“stph”。我希望获得“Stephan Curry”的建议,因为它经常被搜索。模糊搜索不适合因为距离大于2,所以使用MLT查询对于这种情况来说是一个不错的选择吗?