0

我需要在 elasticsearch 中进行查询,这样,在以下文本中:“我想和家人一起去纽约度假”在嵌套字段中找到:“纽约”。我在我的数据中有一个字段,其中包含“New York”这个词,它是 Nested 和 not_analyzed 类型。有人知道怎么做吗?

查询和我得到了它,没有人帮助我。

4

2 回答 2

4

使用短语查询。从文档:

{
   "match_phrase" : {
       "message" : "this is a test"
   }
}

我确实认为拥有“not_analyzed”对您来说将是一个问题,因为您实际上想要一个已分析的字段。您可以指定要使用的分析器类型,这可能会起作用。但如果可能的话,我建议使用分析字段。

如果您愿意支付空间成本,我建议您使用包含已分析和未分析部分的多字段。这是一个例子:

 "sender": {
            "type" : "multi_field",
            "fields" : {
                "sender" : {"type" : "string", "index" : "analyzed"},
                "sender_not_analyzed" : {"type" : "string", "index" : "not_analyzed"}
            }
        }
于 2013-06-07T18:46:43.243 回答
0

not_analyzed意思是它所说的,它没有被分析。它将被索引为传入的文字字符串,在单个标记中。如果您对其进行分析,它将被标记化和过滤,以使其对全文搜索有用。就这样做吧。

请参阅ElasticSearch Analysis的文档。

于 2013-06-07T18:46:58.613 回答