字段内容为:"text": "不要了,这个我不要了"
查询语句为:
{
"query": {
"regexp": {
"messages.text": {
"value": "不要.+不要"
}
}
}
}
结果为:
{
"took": 11,
"timed_out": false,
"_shards": {
"total": 2,
"successful": 2,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": [ ]
}}
查不到结果,网上找资料发现"regexp查询基于词条进行操作。如果你在一个analyzed字段上使用了它们,它们会检查字段中的每个词条,而不是整个字段。"现在有需求需要用正则去这样匹配,这位大神有没有什么好的方案,谢谢
查询语句为:
{
"query": {
"regexp": {
"messages.text": {
"value": "不要.+不要"
}
}
}
}
结果为:
{
"took": 11,
"timed_out": false,
"_shards": {
"total": 2,
"successful": 2,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": [ ]
}}
查不到结果,网上找资料发现"regexp查询基于词条进行操作。如果你在一个analyzed字段上使用了它们,它们会检查字段中的每个词条,而不是整个字段。"现在有需求需要用正则去这样匹配,这位大神有没有什么好的方案,谢谢
2 个回复
Ombres
赞同来自: su_san
我这里提供一种解决方案,新加一个字段,这个字段不进行分词,用keyword类型就可以。
举个例子,mapping可以写成这样:
message字段用来全文搜索,message.keyword作为正则查询时候使用
kepmoving - 90后
赞同来自: