弹性搜索 - 更多像这个查询返回空结果

时间:2017-10-11 20:53:20

标签: elasticsearch lucene morelikethis

我正在使用弹性搜索来创建某种标记引擎。我正在插入一个文件,我无法检索它。我重现问题的步骤:

1)创建索引:

PUT index
{
"mappings": {
    "taggeable" : {
        "_all" : {"enabled" : false},
        "properties" : {
            "id" : {
                "type" : "string",
                "index" : "no"
            },
            "tags" : {
                  "type" : "text"
            }
            }
        }
    }
}

2)插入文件:

POST index/taggeable
{
"id" : "1",
"tags" : "tag1 tag2"
}

3)使用更多类似的查询:

GET index/_search
{
"query": {
    "more_like_this" : {
        "fields" : ["tags"],
        "like" : ["tag1"],
        "min_term_freq" : 1
    }
}
}

但我收到了:

{
"_shards": {
    "failed": 0, 
    "skipped": 0, 
    "successful": 5, 
    "total": 5
}, 
"hits": {
    "hits": [], 
    "max_score": null, 
    "total": 0
}, 
"timed_out": false, 
"took": 1
}

任何人都知道我做错了什么?我应该检索我插入的文件。

1 个答案:

答案 0 :(得分:1)

您设置参数

  

min_term_freq

     

最低条款频率,低于该频率的条款将被忽略   输入文件。默认为2。

这是好的,否则它将被默认为2.还有一个参数

  

min_doc_freq

     

最低文档频率,低于该频率将忽略这些术语   来自输入文件。默认为5。

在您的情况下,如果您只有1个文档,则会忽略此文档,因此您需要添加更多文档,或者将参数min_doc_freq指定为1