Elasticsearch 自动补齐建议
来源:互联网 发布:windows live安装出错 编辑:程序博客网 时间:2024/05/16 14:33
欢迎访问本人博客查看原文:http://wangnan.tech
completion suggester
1.mapping
curl -XPUT 192.168.0.1:9200/person -d' //新建一个persion的索引
{
"mappings": {
"person": { //这个是_type
"properties": {
"name": {
"type": "string"
}
"tag_suggest": {
"type": "completion", //设置为completion才能被suggest捕获
"index_analyzer": "ik",
"search_analyzer": "ik",
"payloads": false
}
}
}
}
}'
2 .添加测试数据
curl -XPUT 192.168.2.20:9200/person/person/1 -d'
{
"name": [
"david",
"jacky"
],
"tag_suggest": {
"input": [
"david",
"jacky"
]
}
}'
curl -XPUT 192.168.0.1:9200/person/person/1 -d'
{
"name": [
"andy",
"jackson"
],
"tag_suggest": {
"input": [
"andy",
"jackson"
]
}
}'
3 DSL
curl -XPOST 192.168.0.1:9200/person/_suggest -d'
{
"person_suggest":{
"text":"jack",
"completion": {
"field" : "tag_suggest"
}
}
}'
4 结果
{
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
},
"person_suggest": [
{
"text": "word",
"offset": 0,
"length": 4,
"options": [
{
"text": "jacky",
"score": 1
},
{
"text": "jackson",
"score": 1
}
]
}
]
}
5.代码
CompletionSuggestionBuilder completionSuggestionBuilder = new
CompletionSuggestionBuilder("complete");
completionSuggestionBuilder.text(paramMap.get("text"));
completionSuggestionBuilder.field(paramMap.get("field"));
completionSuggestionBuilder.size(10);
IElasticsearchClient client = index.getIndexClient();
CompletionSuggestionBuilder completionSuggestion = completionSuggestionBuilder
SuggestResponse resp = client.prepareSuggest(realIndexName)
.addSuggestion(completionSuggestion).execute().actionGet();
List<? extends Suggest.Suggestion.Entry<? extends Suggest.Suggestion.Entry.Option>> list = response.getSuggest().getSuggestion("complete").getEntries();
List<String> suggestList = new ArrayList<String>();
if (list == null) {
return null;
} else {
for (Suggest.Suggestion.Entry<? extends Suggest.Suggestion.Entry.Option> e : list){
for (Suggest.Suggestion.Entry.Option option : e) {
suggestList.add(option.getText().toString());
}
}
0 0
- Elasticsearch 自动补齐建议
- Elasticsearch - edgeNGram自动补全
- ElasticSearch 自动补全 Python 实现
- Elasticsearch in java 范例:自动补齐功能(completion suggester)
- FreeBSD 自动补齐
- python 自动补齐
- shell----自动补齐
- 自动补齐控件
- Android autocompleteTextview自动补齐
- AutoCompleteTextView,MultiAutoCompleteTextView 自动补齐
- notepad++自动补齐括号
- Python shell自动补齐
- vim 代码自动补齐
- Racer: 自动补齐神器
- webstorm自动补齐快捷键
- Elasticsearch 优化建议
- 各大搜索引擎智能提示API (JSONP跨域实现自动补全搜索建议)
- 各大搜索引擎智能提示API(jsonp实现跨域自动补全建议)
- Docker和虚拟机有什么不同
- vs2015 找不到源文件stdio.h解决方法
- 针对下方是导航条,上方是Fragment; 包括Fragment再嵌套Fragment进行切换(类似QQ消息模块中消息,电话)的UI框架
- [人工智能]基于Spark机器学习之决策树实现
- Add Two Numbers II
- Elasticsearch 自动补齐建议
- (18)Java学习笔记——多线程01
- 数据算法之快速排序(quickSort)的Java实现
- DriveInfo.GetDrives使用错误备忘
- Win10 Python 2.7.7 安装Scrapy
- C# 类型转换(知识要点归纳总结)
- 基于Ubuntu系统搭建以太坊go-ethereum源码的开发环境
- Android studio————Gradle基础语法
- hibernate与mybatis的区别