"query": "zhang bo -san" 这时候查询出了新添加的那条 ,所以 没有 san , zhang 和 bo 带一个就可以。 "query_string": { "query": "zhang bo +san" 这按照我的猜想应该是 必须有 san , zhang bo 有一个 。但是 却 可以 zhang bo 都没有。 这个就不知道为啥了,姑且 当做 es 的 一个bugger...
"query": "zhang bo -san" 这时候查询出了新添加的那条 ,所以 没有 san , zhang 和 bo 带一个就可以。 "query_string": { "query": "zhang bo +san" 这按照我的猜想应该是 必须有 san , zhang bo 有一个 。但是 却 可以 zhang bo 都没有。 这个就不知道为啥了,姑且 当做 es 的 一个bugger...
esquery_string和match的区别 esquery_string和match的区别 默认使⽤空格拆分成多个⼦项,并且每个⼦项都会去分词查询。可以通过 default_operator 指定⼦项之间的关系。默认是或。然后每个⼦项前⾯可以使⽤ -+ 指定必须有或者必须么有。并且加了修饰符 +- 的提出单独算。 测试数据:{ "took": 4523,...
match :模糊匹配,需要指定字段名,但是输入会进行分词,比如"hello world"会进行拆分为hello和world,然后匹配,如果字段中包含hello或者world,或者都包含的结果都会被查询出来,也就是说match是一个部分匹配的模糊查询。查询条件相对来说比较宽松。term : 这种查询和match在有些时候是等价的,比如我们查...
1. match match:模糊匹配,需要指定字段名,但是输入会进行分词,比如"hello world"会进行拆分为hello和world,然后匹配,如果字段中包含hello或者world,或者都包含的结果都会被查询出来,也就是说match是一个部分匹配的模糊查询。查询条件相对来说比较宽松。 2. term ...
今天线上发现一个问题,从而引出对query_string 和 match 的区别的思考。 curl -XGET 'http://localhost:9200/*/*/_search?pretty' -d '{ "from" : 0, "size" : 10, "fields" : ["title"], "query": { "query_string" : { "query" : "100CrMo7 +圆钢", ...
结论1: query_string与match的不同 match查询对字段分词后的匹配顺序严格,query_string对字段的匹配顺序不严格,能检索到更多的内容,字段使用更灵活,但是对应的也会消耗更多的资源和性能,查询速度也会更慢。 结论2: term与前两者的不同 term这里的查询应该比较好理解,数据结构不同导致的查询方式的不同,前两者为text...
{"query":{"multi_match":{"query":"hello and like","fields":["title","author"]}}} 三、query_string查询( 支持lucene的查询语法 ) 3.1、复合语法查询 title字段包含hello,且权重为10,也要包含like,但是otitle不包含cat,同事author字段包含Fyodor和dostoevsky。
今天线上发现一个问题,从而引出对query_string 和 match 的区别的思考。 curl -XGET'http://localhost:9200/*/*/_search?pretty' -d '{"from":0,"size":10,"fields": ["title"],"query": {"query_string": {"query":"100CrMo7 +圆钢","fields": ["title"] ...