我需要在elasticsearch中进行一个查询,这样,在下面的文本中:“我想和我的家人一起去纽约度假”在一个嵌套的字段中找到:"New York“。在我的数据中,我有一个包含单词"New York“的字段,它是嵌套的not_analyzed类型。有人知道怎么做吗?
查询和我得到它,没有人帮助我。
发布于 2013-06-08 02:46:43
使用phrase query。从文档中:
{
"match_phrase" : {
"message" : "this is a test"
}
}我确实认为"not_analyzed“对你来说会是一个问题,因为你实际上想要一个被分析的字段。您可以指定要使用的分析器类型,这可能会起作用。但是,如果可能的话,我建议使用分析过的字段。
如果您愿意支付空间成本,我建议您使用包含分析和not_analyzed部件的多字段。下面是一个示例:
"sender": {
"type" : "multi_field",
"fields" : {
"sender" : {"type" : "string", "index" : "analyzed"},
"sender_not_analyzed" : {"type" : "string", "index" : "not_analyzed"}
}
}发布于 2013-06-08 02:46:59
not_analyzed言出必行,它不会被分析。它将在单个令牌中作为传入的文字字符串进行索引。如果对其进行分析,则会对其进行标记化和过滤,以使其对全文搜索有用。那就这么做吧。
请参考ElasticSearch Analysis的文档。
https://stackoverflow.com/questions/16990870
复制相似问题