我想做与以下SQL语句等效的Elasticsearch:
从用户名不喜欢'%something%'的用户中选择* *
我不在乎效率或得分……这只是偶尔执行。我正在使用请求正文语法。
答案 0 :(得分:1)
使用普通的wildcard query,然后使用bool must_not query将其取反。
GET Users/_search
{
"query": {
"bool": {
"must_not": [{
"wildcard": {
"UserName": {
"value": "*something*"
}
}
}]
}
}
}
答案 1 :(得分:0)
我不确定您的用户是否是您在Elastic中的索引-但这仍然是主要思想:
您可以通过使用regexp
进行否定来进行Complement - "~"
查询:
GET Users/_search
{
"query": {
"regexp":{
"UserName": {
"value": ".*~(something).*"
}
}
}
}
有关更多有用的参考,您可以查看here
PS:
您不会获得最佳性能,但可以完成工作