【发布时间】:2016-07-14 01:43:43
【问题描述】:
我已经寻找了很多答案,但没有任何效果,所以这是我的问题,我有一个带有字符串类型字段“名称”的索引,我使用 match_phrase 进行简单的全文搜索,但该字段有时是由逗号、点、斜线或连字符分隔的几个单词组成的字符串复合词,例如“engineer,operator,maintenance”。我需要排除这些结果,例如,如果我有下一个名字:
- “工程师、操作员、维护人员”
- “工程师”
- “工业工程师”
如果我搜索“工程师”,我想得到最后两个结果并排除第一个。我尝试使用这样的 must not 子句:
"query": {
"bool": {
"must": {
"match_phrase": {
"name": "Vendedor"
}
},
"must_not":{
"match":{
"name": "\."
}
}
}
}
我也尝试过使用正则表达式,但它总是让我得到错误字符的结果:
"must_not":{
"regexp":{
"name": ".*[\-\.\/\.].*"
}
}
我做错了什么或者应该如何完成这项任务?
【问题讨论】:
标签: elasticsearch