gpt4 book ai didi

elasticsearch - 带有空格的Elasticsearch字词查询不起作用

转载 作者:行者123 更新时间:2023-12-03 00:49:46 25 4
gpt4 key购买 nike

我正在尝试执行以下查询:

{
"query": {
"bool": {
"must": [
{
"term": {
"Thing.Name": {
"value": "(item) test",
"boost": 1
}
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
}
}

这没有产生结果,我也不知道为什么。我有 parent 和一个空间。我在这里有什么选择?

最佳答案

您要匹配使用术语查询的确切值。正如阿米特(Amit)在评论中所提到的,术语查询不使用分析器,因此它将与包含完全相同的标记的文档匹配,您需要按以下方式修改Thing.Name的映射:

{
"Thing": {
"properties": {
"Name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
}
}
}
}

如果映射是由Elastic自动生成的,则它将具有与上述名称字段类似的属性。如果已经存在,则无需在映射中进行任何修改。更新查询以使用 Thing.Name.keyword而不是 Thing.Name,因为 keyword类型的字段不会分析该值并生成单个 token ,即输入值本身。

因此查询将是:
{
"query": {
"bool": {
"must": [
{
"term": {
"Thing.Name.keyword": {
"value": "(item) test",
"boost": 1
}
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
}
}

关于elasticsearch - 带有空格的Elasticsearch字词查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55525175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com