3

我正在尝试使用弹性搜索(版本 1.0)多重匹配查询,类型设置为cross_fields喜欢在弹性搜索页面的手册

查询看起来像这样(它与 elasticsearch 页面上的完全一样):

{
  "multi_match" : {
    "query":      "Robert Smith",
    "type":       "cross_fields",
    "fields":     [ "vorname", "familienname" ],
    "operator":   "and"
  }
}

该索引是使用 jdbc River(带有自动映射)插件创建的,并且可以与其他查询一起正常工作。当我删除类型时:cross_fields或将其更改为例如phrase_prefix它工作正常。当我将其更改为其他类型时,most_fields它也不起作用。我得到的错误如下所示:

{
  "error": "SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures {[WXL5tNBeQB6tW0xLDPURRA][df_smsdata][3]: SearchParseException[[df_smsdata][3]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\"query\":{\"multi_match\":{\"query\":\"Robert Smith\",\"type\":\"cross_fields\",\"fields\":[\"vorname\",\"familienname\"]}}}]]]; nested: QueryParsingException[[df_smsdata] **[multi_match] query does not support type cross_fields];** }{[WXL5tNBeQB6tW0xLDPURRA][df_smsdata][2]: SearchParseException[[df_smsdata][2]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\"query\":{\"multi_match\":{\"query\":\"Robert Smith\",\"type\":\"cross_fields\",\"fields\":[\"vorname\",\"familienname\"]}}}]]]; nested: QueryParsingException[[df_smsdata] [multi_match] query does not support type cross_fields]; }{[WXL5tNBeQB6tW0xLDPURRA][df_smsdata][4]: SearchParseException[[df_smsdata][4]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\"query\":{\"multi_match\":{\"query\":\"Robert Smith\",\"type\":\"cross_fields\",\"fields\":[\"vorname\",\"familienname\"]}}}]]]; nested: QueryParsingException[[df_smsdata] [multi_match] query does not support type cross_fields]; }{[WXL5tNBeQB6tW0xLDPURRA][df_smsdata][1]: SearchParseException[[df_smsdata][1]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\"query\":{\"multi_match\":{\"query\":\"Robert Smith\",\"type\":\"cross_fields\",\"fields\":[\"vorname\",\"familienname\"]}}}]]]; nested: QueryParsingException[[df_smsdata] [multi_match] query does not support type cross_fields]; }{[WXL5tNBeQB6tW0xLDPURRA][df_smsdata][0]: SearchParseException[[df_smsdata][0]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\"query\":{\"multi_match\":{\"query\":\"Robert Smith\",\"type\":\"cross_fields\",\"fields\":[\"vorname\",\"familienname\"]}}}]]]; nested: QueryParsingException[[df_smsdata] [multi_match] query does not support type cross_fields]; }]",
  "status": 400
}

我可以看到查询不支持的解析异常cross_fields。创建索引时我必须设置什么吗?

4

1 回答 1

1

在您的链接文档中,它说:

multi_match 查询的类型

注意在 1.1.0 中添加。

在http://www.elasticsearch.org/blog/elasticsearch-1-1-0-released/中也提到了

您将需要下载较新的版本。

于 2014-04-02T09:04:36.933 回答