我有一个英语字典索引,我用以下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的第二个词|
1条答案
按热度按时间mi7gmzs61#
这是因为默认的运算符是OR,所以您将捕获所有以orhanOR结尾并以s开头的单词。
您可以变更运算子:
或者直接将运算符添加到查询中: