Elasticsearch - edgeNGram自动补全
2016-04-16 14:10
507 查看
现代搜索离不开自动补全功能。正是有了该功能,用户可以方便地找到那些不知如何拼写的条目。
看如下索引配置:
{
"settings": {
"analysis": {
"analyzer": {
"standardWithEdgeNGram": {
"tokenizer": "standard",
"filter": ["lowercase", "edgeNGram"]
}
},
"tokenizer": {
"standard": {
"type": "standard"
}
},
"filter": {
"lowercase": {
"type": "lowercase"
},
"edgeNGram": {
"type": "edgeNGram",
"min_gram": 2,
"max_gram": 15,
"token_chars": ["letter", "digit"]
}
}
}
},
"mappings": {
"test": {
"_all": {
"analyzer": "standardWithEdgeNGram"
},
"properties": {
"Name": {
"type": "string",
"index_analyzer": "standardWithEdgeNGram"
"index": "analyzed","search_analyzer":"standard"
}
}
}
}
}
min_gram:长度小于此参数值的词条将不会被生成。这个值直接影响了进行提示所需的最小字符个数。
max_gram:分词器会忽略长度超过此参数值的词条。这是可用提示的最大字符个数。我们假设越长的查询越不需要提示,因为用户很可能已经知道了自己想要的查询目标了。
看如下索引配置:
{
"settings": {
"analysis": {
"analyzer": {
"standardWithEdgeNGram": {
"tokenizer": "standard",
"filter": ["lowercase", "edgeNGram"]
}
},
"tokenizer": {
"standard": {
"type": "standard"
}
},
"filter": {
"lowercase": {
"type": "lowercase"
},
"edgeNGram": {
"type": "edgeNGram",
"min_gram": 2,
"max_gram": 15,
"token_chars": ["letter", "digit"]
}
}
}
},
"mappings": {
"test": {
"_all": {
"analyzer": "standardWithEdgeNGram"
},
"properties": {
"Name": {
"type": "string",
"index_analyzer": "standardWithEdgeNGram"
"index": "analyzed","search_analyzer":"standard"
}
}
}
}
}
min_gram:长度小于此参数值的词条将不会被生成。这个值直接影响了进行提示所需的最小字符个数。
max_gram:分词器会忽略长度超过此参数值的词条。这是可用提示的最大字符个数。我们假设越长的查询越不需要提示,因为用户很可能已经知道了自己想要的查询目标了。
相关文章推荐
- jQuery plugin items filter
- 全国哀悼日网站页面变成灰色的filter方法
- 用css filter做鼠标滑过图片效果
- 巧用mysql提示符prompt清晰管理数据库的方法
- ASP 使用Filter函数来检索数组的实现代码
- ASP.NET MVC:Filter和Action的执行介绍
- jQuery遍历DOM节点操作之filter()方法详解
- JSP Filter的应用方法
- PHP中实现Bloom Filter算法
- Jquery find与filter函数区别 说明
- 两大步骤教您开启MySQL 数据库远程登陆帐号的方法
- phpmyadmin 4+ 访问慢的解决方法
- linux系统下实现mysql热备份详细步骤(mysql主从复制)
- CentOS 5.5下安装MySQL 5.5全过程分享
- Event filter with query SELECT * FROM __InstanceModificationEvent WITHIN
- PHP内置过滤器FILTER使用实例
- MySQL复制的概述、安装、故障、技巧、工具(火丁分享)
- MySQL中删除重复数据的简单方法
- PHP中filter函数校验数据的方法详解
- Android中的Intent Filter匹配规则简介