elasticSearch
文章平均质量分 73
田培融
这个作者很懒,什么都没留下…
展开
-
定制化分词器
ES提供给了一些自带的分词器,如标准分词器,空格分词器,对中文支持不好。 因此也就有了一些第三方的分词器。 如ik分词器,这里用着还不错, 不过有的时候还是不能满足我们工作中的需要,因此就需要在现成的分词器上加一些定制化的改造。 有点像设计模式中的装饰模式。 这里选用的分词器是IK分词器。 扩展新词 进入 ik分词器的配置文件目录,创建new_dict.dic文件,并在里面添加自己想的词。然后在修改IKAnalyzer.cfg.xml 配置文件。指定扩展词文件的路径。 里面的还可以配置停用词,还远程扩展词原创 2020-08-26 08:54:19 · 379 阅读 · 1 评论 -
将查询出来的结果重新构建索引
在ES中如果更新了词库,就需要对已经存在的索引重新构建。 POST /shop/_update_by_query { "query": { "bool": { "must": [ {"term": { "name": { "value": "南" } }}, { "term": { "name": {原创 2020-08-24 08:16:14 · 313 阅读 · 0 评论 -
电商搜索实战二 ES高级搜索
带上距离字段查询 “script_fields” 意思是说通过脚本可以得到一个定制化的字段 “lang”: “expression” 为固定写法,表示这是一个表达式。 GET shop/_search { "query": { "match": { "name": "凯悦" } }, "_source": "*", "script_fields": { "distance": { "script": { "source原创 2020-08-19 07:57:36 · 995 阅读 · 0 评论 -
电商搜索实战一 索引构建示例
索引定义思路 定义字段, 就是说有哪些字段需要保存到es中。 定义字段类型,哪些字段做分词,哪些字段做排序还有一些像地理信息等复杂类型的定义。 定义字段的分词器 创建索引 PUT /shop { "settings": { "number_of_shards": 1, "number_of_replicas": 1 }, "mappings": { "properties": { "id":{ "type": "integer"}, "nam原创 2020-08-14 15:59:28 · 543 阅读 · 0 评论 -
IK分词器基础安装入门
安装 进入到elasticsearch的安装目录下, 找到bin目录。 执行里面的elasticsearch-plugin 命令,这个命令是管理es中的插件的。 ik分词器就是一个插件。 执行下面这个命令就可以安装成了, 注意IK分词器的版本要和es的版本一致才行。 具体哪个版本可以去github中去找。 bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/downloa原创 2020-08-14 08:49:54 · 321 阅读 · 0 评论 -
ES相关度评分
算法介绍 relevance score(相关度得分)算法:简单来说,就是计算出,一个索引中的文本,与搜索文本,他们之间的关联匹配程度 Elasticsearch 使用的是 term frequency/inverse document frequency 算法,简称为 TF/IDF 算法 TF/IDF 有以下三个组成 Term frequency(词的频率) 搜索文本中的各个词条在 field 文本中出现了多少次,出现次数越多,就越相关 比如:搜索请求:hello world,肯定是 doc1 中得分原创 2020-08-11 14:02:16 · 1940 阅读 · 1 评论 -
ES 基础语法 CRUD
以下语法是在ES7中测试的,低版本可能会有不兼容的问题 创建索引 PUT /article { "mappings": { "properties": { "title":{ "type": "text", "analyzer": "english" } } } } 添加数据 POST article/_doc/1 { "title":" a dog" } _doc: 是固定写法 查询所有 GET /article/_s原创 2020-08-10 19:20:13 · 1191 阅读 · 0 评论 -
The mapping definition cannot be nested under a type [_doc] unless include_type_name is set to true
在给ES7手动创建索引的时候,会出现 这个异常。 代码如下 PUT twitter { "mappings": { "_doc": { "properties": { "type": { "type": "keyword" }, "name": { "type": "text" }, "user_name": { "type": "keyword" }, "email": { "type": "keyword" },原创 2020-08-10 17:28:56 · 12111 阅读 · 5 评论