
elasticSearch
文章平均质量分 73
田培融
这个作者很懒,什么都没留下…
展开
-
定制化分词器
ES提供给了一些自带的分词器,如标准分词器,空格分词器,对中文支持不好。 因此也就有了一些第三方的分词器。 如ik分词器,这里用着还不错, 不过有的时候还是不能满足我们工作中的需要,因此就需要在现成的分词器上加一些定制化的改造。 有点像设计模式中的装饰模式。这里选用的分词器是IK分词器。扩展新词进入 ik分词器的配置文件目录,创建new_dict.dic文件,并在里面添加自己想的词。然后在修改IKAnalyzer.cfg.xml 配置文件。指定扩展词文件的路径。里面的还可以配置停用词,还远程扩展词原创 2020-08-26 08:54:19 · 415 阅读 · 1 评论 -
将查询出来的结果重新构建索引
在ES中如果更新了词库,就需要对已经存在的索引重新构建。POST /shop/_update_by_query{ "query": { "bool": { "must": [ {"term": { "name": { "value": "南" } }}, { "term": { "name": {原创 2020-08-24 08:16:14 · 341 阅读 · 0 评论 -
电商搜索实战二 ES高级搜索
带上距离字段查询“script_fields” 意思是说通过脚本可以得到一个定制化的字段 “lang”: “expression” 为固定写法,表示这是一个表达式。GET shop/_search{ "query": { "match": { "name": "凯悦" } }, "_source": "*", "script_fields": { "distance": { "script": { "source原创 2020-08-19 07:57:36 · 1036 阅读 · 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 · 574 阅读 · 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 · 343 阅读 · 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 · 1986 阅读 · 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 · 1216 阅读 · 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 · 12285 阅读 · 5 评论