为什么在Elasticsearch 0.90 more_like_this_field查询中不支持stop_words?

时间:2013-10-21 06:40:41

标签: elasticsearch

与当前的ES文档http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-mlt-field-query.html相反,对于ES安装中的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
        }
    }
}

这就是我回来的原因

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

1 个答案:

答案 0 :(得分:2)

more_like_this查询也是如此,原因是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"]
        }
    }
}