社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Elasticsearch

考虑elasticsearch查询中的每个单词

rap-2-h • 4 年前 • 617 次点击  

想想这句话: lorem ipsum quid .

我想查询多个字段,更喜欢所有单词都存在的答案。换言之,我不想忽略一些单词,我想增加考虑所有单词的查询。

我可以通过做一个 simple_query_string 加上 + 每句话之前:

query: {
  simple_query_string: {
    query: "lorem +ipsum +quid",
    default_operator: "and",
    fields: ["f1", "f2", "f3"]
  }
}

不过,这看起来很奇怪,它迫使我编辑用户查询,并通过regex将空格替换为 + ,这是一种修补。

弹性搜索有没有办法强迫(在匹配或多匹配或其他我不知道的东西)考虑每个单词?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/51575
 
617 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Always Sunny
Reply   •   1 楼
Always Sunny    5 年前

不确定这是否能完成你的工作,但是这样试试- term 里面 must

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "f1": "lorem ipsum quid"
          }
        },
        {
          "term": {
            "f2": "lorem ipsum quid"
          }
        },
       {
          "term": {
            "f3": "lorem ipsum quid"
          }
        }
      ]
    }
  }
}