首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有连字符的弹性、术语(或_ID)查询

具有连字符的弹性、术语(或_ID)查询
EN

Stack Overflow用户
提问于 2020-09-12 03:57:21
回答 1查看 220关注 0票数 0

我很难找到准确的匹配。文档中的两个字段、_id中的字段和正文中的一个字段中的字段是相同的。

所以我可以搜索这两个领域中的任何一个。是否有任何方法来配置术语查询来支持这一点?我尝试过指定空格分析器,但它似乎不支持术语查询的配置。

我试过几种变体,但到目前为止都没有用。

代码语言:javascript
运行
复制
data: {
    query: {
        term: {
            "_id":"4123-0000"            
        }
    }
}

这什么也回不来。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-12 04:34:35

问题是,在使用默认映射时,您的_id字段似乎是由您填充的,它将使用text字段,该字段使用standard分析器并根据-拆分令牌,因此您的_id字段被标记如下:

POST /_analyze

代码语言:javascript
运行
复制
{
  "text" : "4123-0000",
  "analyzer" : "standard"
}

和令牌

代码语言:javascript
运行
复制
 {
        "tokens": [
            {
                "token": "4123",
                "start_offset": 0,
                "end_offset": 4,
                "type": "<NUM>",
                "position": 0
            },
            {
                "token": "0000",
                "start_offset": 5,
                "end_offset": 9,
                "type": "<NUM>",
                "position": 1
            }
        ]
    }

现在,正如您可能知道的那样,term查询没有被分析(即它按原样使用4123-0000 ),并试图在倒排索引中查找,这是不可用的,因此您无法得到任何结果。

解决方案,只需将_id替换为_id.keyword即可获得搜索结果。

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

https://stackoverflow.com/questions/63856672

复制
相关文章

相似问题

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