首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ElasticSearch查询

ElasticSearch查询
EN

Stack Overflow用户
提问于 2013-06-08 02:41:55
回答 2查看 924关注 0票数 0

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-08 02:46:43

使用phrase query。从文档中:

代码语言:javascript
复制
{
   "match_phrase" : {
       "message" : "this is a test"
   }
}

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

如果您愿意支付空间成本,我建议您使用包含分析和not_analyzed部件的多字段。下面是一个示例:

代码语言:javascript
复制
 "sender": {
            "type" : "multi_field",
            "fields" : {
                "sender" : {"type" : "string", "index" : "analyzed"},
                "sender_not_analyzed" : {"type" : "string", "index" : "not_analyzed"}
            }
        }
票数 4
EN

Stack Overflow用户

发布于 2013-06-08 02:46:59

not_analyzed言出必行,它不会被分析。它将在单个令牌中作为传入的文字字符串进行索引。如果对其进行分析,则会对其进行标记化和过滤,以使其对全文搜索有用。那就这么做吧。

请参考ElasticSearch Analysis的文档。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16990870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档