2013-10-21 35 views
1

与当前ES文档http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-mlt-field-query.html相反,stop_words是ES安装中more_like_this_field查询不支持的字段。为什么在Elasticsearch 0.90 more_like_this_field查询中不支持stop_words?

version: 0.90.5 
build_hash: c8714e8e0620b62638f660f6144831792b9dedee 
build_timestamp: 2013-09-17T12:50:20Z 
build_snapshot: false 
lucene_version: 4.4 

任何人都可以证实这一点吗?

这就是我向服务器发送

{ 
    "query": { 
     "bool": { 
      "must": [ 
       { 
        "match_all": { 
         "boost": 1 
        } 
       }, 
       { 
        "more_like_this_field": { 
         "FieldA": { 
          "like_text": "House", 
          "boost": 1, 
          "min_doc_freq": 0, 
          "min_word_len": 0, 
          "min_term_freq": 0 
         } 
        } 
       } 
      ], 
      "should": [ 
       { 
        "more_like_this_field": { 
         "Equipped": { 
          "like_text": "pool garage", 
          "boost": 0, 
          "min_doc_freq": 0, 
          "min_word_len": 0, 
          "min_term_freq": 0, 
          "stop_words": "garden" 
         } 

        } 
       }, 
       { 
        "more_like_this_field": { 
         "Neighbourhood": { 
          "like_text": "school", 
          "boost": 5, 
          "min_doc_freq": 0, 
          "min_word_len": 0, 
          "min_term_freq": 0 
         } 
        } 
       } 
      ], 
      "minimum_number_should_match": 2 
     } 
    } 
} 

,这就是我回来与more_like_this查询

QueryParsingException[[data] [mlt_field] query does not support [stop_words]]; 

回答

2

同样的情况,原因是stop_words必须是一个数组。

{ 
    "more_like_this_field": { 
     "Equipped": { 
      "like_text": "pool garage", 
      "boost": 0, 
      "min_doc_freq": 0, 
      "min_word_len": 0, 
      "min_term_freq": 0, 
      "stop_words": ["garden"] 
     } 
    } 
} 
+0

虽然错误信息很糟糕... – phoet

+0

确实,补丁是值得欢迎的! ;) – javanna

+0

将不得不为此设置一个Java环境...所以,不:) – phoet