我有一个关于elasticsearch查询的问题:
我有两个文档,内容字段使用标准分析器,值如下:
当我使用match查询时,我可以获得这两个文档:
localhost:9200/content/en-us/_search?pretty=true -d '
{
"query" : {
"match" : {
"content" : "johnson hot"
}
}
}'但我无法让他们使用更类似的查询:
localhost:9200/content/en-us/_search?pretty=true -d '
{
"from": 0,
"size": 200,
"query": {
"more_like_this_field": {
"content": {
"like_text": "johnson hot",
"min_term_freq": 1,
"max_query_terms": 12
}
}
}
}'结果:
"hits" : {
"total" : 0,
"max_score" : null,
"hits" : [ ]
}有人知道为什么吗?查询是否与SQL中的“相似”类似?
谢谢约翰逊
发布于 2014-04-28 10:38:43
更像此字段查询将通过匹配指定字段的内容为您提供类似的文档。
您必须将min_doc_freq设置为1,默认值为5,因此如果like_text中的术语在超过5个文档中不出现,则忽略中的术语。由于您只有两个文档,术语jhonson和hot都将被忽略。下面的查询应该可以工作
curl 'http://localhost:9200/content/en-us/_search?pretty=true' -d '{
"from": 0,
"size": 200,
"query": {
"more_like_this_field": {
"content": {
"like_text": "johnson hot",
"min_term_freq": 1,
"max_query_terms": 12,
"min_doc_freq": 1
}
}
}
}'https://stackoverflow.com/questions/23336074
复制相似问题