must
这种关系, 相当于 and , 必须同时满足才行
![](https://img.haomeiwen.com/i2648722/94af7397e62b2197.png)
should
这种关系, 相当于 or , 满足一个就可以了
![](https://img.haomeiwen.com/i2648722/fc41782db8be83f5.png)
这里查出了3条数据
must_not
![](https://img.haomeiwen.com/i2648722/d0c38f2356fc9f93.png)
must_not 相当于是 !should , 所以这里查出了1条数据. 所有的都不满足才可以查出来
range区间查询
gt >
gte >=
lt <
lte <=
![](https://img.haomeiwen.com/i2648722/dce7f2b184bce776.png)
区间查询通过range的方式.
wildcard通配符查询
允许使用通配符* 和 ?来进行查询
*代表0个或多个字符
?代表任意一个字符
![](https://img.haomeiwen.com/i2648722/6b0af48a4b53125b.png)
term 精确查询
这个查询是有坑的, 首先看以下查询
![](https://img.haomeiwen.com/i2648722/a79eabf5018a277c.png)
desc我只传了一个 "运" 字, 发现能正常查询出来, 但是通常情况, 我是想查词条的, 比如 "运动".
那替换成运动看一下:
![](https://img.haomeiwen.com/i2648722/79ab5a22880f80ca.png)
发现查不出来了, 是不是很神奇.
这其实是建表的时候导致的.
这里可以对 jd_goods 库进行查询比较一下:
![](https://img.haomeiwen.com/i2648722/1211dff1d3560a94.png)
为啥 jd_goods 就能查出来, lisen却查不出来呢?
通过 get 来看一下, 两边的字段有啥区别:
![](https://img.haomeiwen.com/i2648722/711fae738f00004e.png)
![](https://img.haomeiwen.com/i2648722/cc8088ec0e17ed4d.png)
可以看到 jd_goods 的 title 字段, 指定了分词器.
高亮
![](https://img.haomeiwen.com/i2648722/a7f6fd819f6a4361.png)
返回值里面多了个 highlight字段, 里面放的就是高亮的字段和内容. 在展示的时候, 需要进行替换操作.
网友评论