我需要在elasticsearch中进行查询,以便在以下文本中: “我想和我的家人一起去纽约度假。”在一个嵌套的领域找到:“纽约”。 我在我的数据中有一个字段,其中包含单词“New York”,它是Nested和not_analyzed类型。 有谁知道怎么做?
查询我得到了,没有人帮助我。
答案 0 :(得分:4)
使用phrase query。来自文档:
{
"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"}
}
}
答案 1 :(得分:0)
not_analyzed
表示它所说的内容,并未进行分析。它将在单个标记中作为传入的文字字符串编入索引。如果您对其进行分析,它将被标记化并过滤,以使其对全文搜索有用。那样做。
请参阅ElasticSearch Analysis的文档。