Elasticsearch suggester搜索建议初步
2016-08-19 22:06
267 查看
环境
Elasticsearch 2.3.5Elasticsearch-ik-plugin
实现
搜索建议的对象假设有以下两个json对象,需要对其中tags字段进行搜索建议:
//对象Product1 { "title": "Product1", "description": "Product1 Description", "tags": [ "山东", "山东高新开发区", "山东大学", "two columns", "wordpress" ] } //对象Product2 { "title": "Product2", "description": "Product2 Description", "tags": [ "山东省", "山东公安局", "山东检察院", "skrill", "wordland" ] }
设置索引mapping
建立索引suggester_ik_test和mapping,如下:
注意使用的suggester类型为completion
curl -XPUT "http://10.110.13.57:9200/suggester_ik_test?pretty" -d' { "mappings": { "product": { "properties": { "description": { "type": "string" }, "tags": { "type": "string" }, "title": { "type": "string" }, "tag_suggest": { "type": "completion", "analyzer": "ik_max_word", "search_analyzer": "ik_max_word", "payloads": false } } } } }'
索引数据
根据上述索引和mapping对json数据建立索引:
//Product1 curl -XPUT "http://10.110.13.57:9200/suggester_ik_test/product/1?pretty" -d' { "title": "Product1", "description": "Product1 Description", "tags": [ "山东", "山东高新开发区", "山东大学", "two columns", "wordpress" ], "tag_suggest": { "input": [ "山东", "山东高新开发区", "山东大学", "two columns", "wordpress" ] } }' //Product2 curl -XPUT "http://10.110.13.57:9200/suggester_ik_test/product/2?pretty" -d' { "title": "Product2", "description": "Product2 Description", "tags": [ "山东省", "山东公安局", "山东检察院", "skrill", "wordland" ], "tag_suggest": { "input": [ "山东省", "山东公安局", "山东检察院", "skrill", "wordland" ] } }'
测试
搜索“山东”,查看是否有搜索建议提示生效:
curl -XPOST "http://10.110.13.57:9200/suggester_ik_test/_suggest?pretty" -d' { "product_suggest":{ "text":"山东", "completion": { "field" : "tag_suggest" } } }' //应该得到以下数据 { "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 }, "product_suggest" : [ { "text" : "山东", "offset" : 0, "length" : 2, "options" : [ { "text" : "山东", "score" : 1.0 }, { "text" : "山东公安局", "score" : 1.0 }, { "text" : "山东大学", "score" : 1.0 }, { "text" : "山东检察院", "score" : 1.0 }, { "text" : "山东省", "score" : 1.0 } ] } ] }
参考资料
Quick and Dirty Autocomplete with Elasticsearch Completion Suggest相关文章推荐
- ElasticSearch速学 - ElasticSearch中的搜索建议、自动纠错
- 开源分布式搜索平台ELK(Elasticsearch+Logstash+Kibana)入门学习资源索引
- 各大搜索引擎智能提示API(JSONP跨域实现自动补全搜索建议)
- lucene简介 创建索引和搜索初步
- lucene简介 + 创建索引和搜索初步 ——转自robert
- [搜索]ElasticSearch Java Api(一)
- 搜索时的建议输入
- 分布式搜索Elasticsearch——QueryBuilders.matchPhrasePrefixQuery
- 为了让搜索引擎更好地搜索到你的网站,建议在中加入:
- 调用百度“搜索建议(BaiduSuggestion)”的 API
- elasticsearch ik分词实现 中文、拼音、同义词搜索
- ElasticSerach之分词器进阶-短语搜索不准确bug及修复实现
- 【百度地图API】搜索建议,如何使用suggestion--下拉列表方式的搜索建议
- caioj.1034 搜索初步
- caioj.1038 搜索初步
- solr入门之拼音加汉字方式的搜索建议自动补全的不高效实现
- 使用MVC框架实现百度搜索建议
- 开发搜索引擎初步(二)搜索(Lucene实现)
- 17_ElasticSearch phrase matching搜索