马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
这个主动补全的功能怎么说呢?比如百度搜索的时间只是输入了一个“老”,但是会有很多提示,什么老师,老人之类的。这就是主动补全!- GET /索引/_search
- {
- "suggest": {
- "prefix_suggestion": {// 自定义推荐名,就是自己起的名字
- "prefix": "elastic",// 被补全的关键字,就相当于搜索框中输入的
- "completion": {
- "field": "productName",// 查询的域
- "skip_duplicates": true, // 忽略重复结果
- "size": 10 //最多查询到的结果数
- }
- }
- }
- }
复制代码 有一点要留意!注:主动补全对性能要求极高,ES不是通过倒排索引来实现的,以是须要将对应的查询字段范例设置为completion。- PUT /product2
- {
- "mappings":{
- "properties":{
- "id":{
- "type":"integer",
- "store":true,
- "index":true
- },
- "productName":{
- "type":"completion"
- },
- "productDesc":{
- "type":"text",
- "store":true,
- "index":true
- }
- }
- }
- }
- POST /product2/_doc
- {
- "id":1,
- "productName":"elasticsearch1",
- "productDesc":"elasticsearch1 is a good search engine"
- }
- POST /product2/_doc
- {
- "id":2,
- "productName":"elasticsearch2",
- "productDesc":"elasticsearch2 is a good search engine"
- }
- POST /product2/_doc
- {
- "id":3,
- "productName":"elasticsearch3",
- "productDesc":"elasticsearch3 is a good search engine"
- }
复制代码- GET /product2/_search
- {
- "suggest": {
- "prefix_suggestion": {// 自定义推荐名
- "prefix": "el",// 被补全的关键字
- "completion": {
- "field": "productName",// 查询的域
- "skip_duplicates": true, // 忽略重复结果
- "size": 10 //最多查询到的结果数
- }
- }
- }
- }
复制代码
|