Elasticsearch更多像这样没有结果

时间:2016-10-25 09:55:47

标签: elasticsearch

我正在试图弄清楚这个查询的更多工作方式(ES 2.X)。 我用术语向量创建了以下索引。

PUT /test_index
{
   "settings": {
      "number_of_shards": 1,
      "number_of_replicas": 0
   },
   "mappings": {
      "doc": {
         "properties": {
            "text": {
               "type": "string",
               "term_vector": "yes"
            }
         }
      }
   }
}

PUT /test_index/doc/1
{
    "text": ["Hello","World"]
}

PUT /test_index/doc/2
{
    "text": ["This","is","me"]
}

PUT /test_index/doc/3
{
    "text": ["Hello","World"]
}

PUT /test_index/doc/4
{
    "text": ["Hello","World","World"]
}

为什么以下查询不返回结果?对于第二个查询,我希望至少检索doc 3,它具有相同的doc 1值。

POST /test_index/doc/_search
{
   "query": {
      "more_like_this": {
         "like": "Hello",
         "min_term_freq": 1
      }
   }
}

POST /test_index/doc/_search
{
   "query": {
      "more_like_this": {
         "fields": [
            "text"
         ],
         "like": [
            {
               "_index": "test_index",
               "_type": "doc",
               "_id": "1"
            }
         ]
      }
   }
}

1 个答案:

答案 0 :(得分:13)

默认情况下,min_doc_freq为5,因此您的查询无效,因为您的索引不包含至少5个term属性为黄色的文档。因此,在查询中将min_doc_freq设置为1,它应该可以正常工作。

{
    "query": {
        "more_like_this": {
            "like": "Hello",
            "min_term_freq": 1,
            "min_doc_freq": 1
        }
    }
}