首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >搜索多个单词,标记不匹配的单词

搜索多个单词,标记不匹配的单词
EN

Stack Overflow用户
提问于 2016-09-29 23:31:59
回答 1查看 190关注 0票数 0

假设搜索项中的查询是“房屋花园车库”。索引中的文档只包含“房子,花园”,“花园,车库”和“房子车库”,但没有文档包含所有这三个词。

目前,查询是使用split_keyword分析器和运算符" and“构建的。所以查询不会返回任何结果。

但是如果省略了一个搜索词,就会有结果。

有没有可能只返回匹配3个术语的子集的文档,并在结果中获得省略的术语?

目前,我看到的唯一方法是使用"OR“作为运算符执行查询,并启用explain,提取每个字段的单个单词的分数,并找到不匹配的术语。但这似乎完全不是故意的。

EN

回答 1

Stack Overflow用户

发布于 2016-09-30 04:40:06

我认为Named Queries在这方面会很有帮助。你可以在带有_name参数的with子句中编写查询,以找出与之匹配的单词,例如

代码语言:javascript
代码运行次数:0
运行
复制
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "your_field": {
              "query": "house",
              "_name" : "house"
            }
          }
        },
        {
          "match": {
            "your_field": {
              "query": "garden",
              "_name" : "garden"
            }
          }
        },
        {
          "match": {
            "your_field": {
              "query": "garage",
              "_name" : "garage"
            }
          }
        }
      ]
    }
  }
}

在results中检查matched_queries字段,它将告诉您它匹配了哪些词,然后您将能够找出哪些词被省略了

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

https://stackoverflow.com/questions/39774467

复制
相关文章

相似问题

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