Elasticsearch通配符搜索:当我向查询中添加空格时,所有内容都福尔斯,

dkqlctbz  于 2022-12-03  发布在  ElasticSearch
关注(0)|答案(1)|浏览(164)

我有一个英语字典索引,我用以下JSON搜索字段

GET /words/_search
{
  "from": 0,
  "size": 10,
  "query": {
    "bool": {
      "filter": [
        {
          "bool": {
            "should": [
              {
                "query_string": {
                  "default_field": "text",
                  "query": "*orhan*"
                }
              }
            ]
          }
        }
      ]
    }
  },
  "track_total_hits": true
}

我的查询目的是获取包含orhan名称的所有记录,运行查询后,我得到了预期的结果;
| 识别码(_I)|索引(_I)|分数(_S)|类型(_T)|正文|
| - -|- -|- -|- -|- -|
| B6 F1 eoQBu 3 ncIuw 4CyKL的缩写|词语|0.0分|文件(_D)|"奥尔罕"|
| 在一个实施例中,|词语|0.0分|文件(_D)|***奥尔罕***d|
| 打印机|词语|0.0分|文件(_D)|***奥尔罕***第二个字|
我修改了我的查询,并尝试搜索orhan s,但一切福尔斯了,整个54665记录显示给我。

###
"bool": {
   "should": [
     {
         "query_string": {
         "default_field": "text",
         "query": "*orhan s*" // <- modified
      }
###

我不能添加整个响应:)但我可以提供,响应的总价值:

"total": {
  "value": 54665,
  "relation": "eq"
},

我的回复不应包括整个记录,而应包括显示给我的相关记录
查询:* "query": "*orhan s*" *
回应:
| 识别码(_I)|索引(_I)|分数(_S)|类型(_T)|正文|
| - -|- -|- -|- -|- -|
| 打印机|词语|0.0分|文件(_D)|Orhan的第二个词|

mi7gmzs6

mi7gmzs61#

这是因为默认的运算符是OR,所以您将捕获所有以orhanOR结尾并以s开头的单词。
您可以变更运算子:

GET /words/_search
{
  "from": 0,
  "size": 10,
  "query": {
    "bool": {
      "filter": [
        {
          "bool": {
            "should": [
              {
                "query_string": {
                  "default_field": "text",
                  "query": "*orhan s*",
                  "default_operator": "AND"
                }
              }
            ]
          }
        }
      ]
    }
  },
  "track_total_hits": true
}

或者直接将运算符添加到查询中:

GET /test_words/_search
{
  "from": 0,
  "size": 10,
  "query": {
    "bool": {
      "filter": [
        {
          "bool": {
            "should": [
              {
                "query_string": {
                  "default_field": "text",
                  "query": "*orhan AND s*"
                }
              }
            ]
          }
        }
      ]
    }
  },
  "track_total_hits": true
}

相关问题