![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Elasticsearch
文章平均质量分 64
gogoout123
这个作者很懒,什么都没留下…
展开
-
elasticsearch completion类型字段值为空报错
问题描述 在mapping中配置字段为“completion”类型,用于进行搜索提示功能,mapping示例如下:PUT test_suggest{ "mappings": { "test_suggest": { "properties": { "title": { "type": "text", ...原创 2019-12-09 10:30:19 · 770 阅读 · 0 评论 -
elasticsearch重平衡特定索引分片分布
elasticserach会自动进行索引及分片的平衡,但有时由于内部策略也会出现某些与主观上不相符的均衡,因此有时需要手工进行下重平衡,命令如下:POST index_name/_settings{index.routing.allocation.total_shards_per_node": number}则会触发集群平衡,最终限定每个节点最多包含该索引的指定数量...原创 2019-11-22 17:43:33 · 1553 阅读 · 1 评论 -
elasticsearch index sorting 索引预排序
预排序概要 Elasticsearch的底层索引工具为Lucene,Lucene通过segment进行索引文件的管理存储,默认情况下,segment中文档按照自增Id排序(写入时Lucene会分配一个Id),查询时根据文档Id顺序遍历,查找所有满足条件的文档。因此,假设我们的检索场景为基于某字段进行排序,如果底层文件可以同样按照这个字段进行排序,那是否会带来检索的一些优化呢? 答案...原创 2019-11-19 11:50:09 · 2738 阅读 · 0 评论 -
elasticsearch基于ingest pipeline的动态索引切割方案
前言: elasticsearch是当今最为便捷的开源搜索引擎,但对于日增量较大的数据,如果不采用分索引的方式进行切割,则会面临单个索引数据无限膨胀的情况,因此必须考虑索引切割的方案,通常会选择某个维度进行切割,如时间维度。这里介绍一下利用ingest的processor基于时间字段进行索引切割的策略。具体配置PUT _ingest/pipeline/monthlyindex{ "des...原创 2019-11-07 15:39:00 · 715 阅读 · 0 评论 -
如何优雅的使用腾讯词向量: 基于redis集群&elasticsearch的姿势
2018年10月份,腾讯AI Lab开源了大规模高质量的中文词向量数据,包含了8824331个常用词的向量表示,维度为200。当前,向量表示已经成为nlp的重要基础功能,从我个人角度而言,其地位等同于搜索引擎中的分词功能,是注入词性标注、命名实体识别、情感分类等后续任务的基础步骤。关于腾讯词向量的进一步细节大家可以参考tencent embedding。 关于词向量的使用,腾讯AI Lab...原创 2019-05-26 22:53:10 · 3246 阅读 · 0 评论 -
elasticsearch如何实现紧密度排序
搜索引擎的核心思想是:针对用户输入的query,进行分词,然后按从倒排索引中匹配term,再基于如BM25等算法计算相关性,召回item。 在搜索场景中,往往还有一个比较常见的需求:根据term间的紧密度进行排序。即:如果一个query包含两个或以上的term,如果一个doc中term间距离较近,则相似性分数应该更高。举例而言:系统中有如下几条数据,我们使得数据长度一致,避免tf-idf造...原创 2019-05-13 19:38:27 · 2451 阅读 · 0 评论 -
elasticsearch使用docker启动一些注意事项
1. 文件挂载权限问题在使用docker来部署elasticsearch服务时,通常需要把elasticsearch的索引数据和日志数据映射到本地进行持久化存储,但是经常会遇到权限问题:elasticsearch无法读取数据或者无法写入日志文件,主要有两种处理方法:将外部文件权限全部打开,有一定安全风险# 将外面文件夹权限设定为全部用户可读写chmod -R 777 /PATH/TO/...原创 2019-03-23 14:24:01 · 3315 阅读 · 0 评论 -
Elasticsearch索引配置隐私字段
业务场景:某聊天记录搜索需求,客户希望对聊天记录进行搜索,但又不希望通过搜索引擎可以查询到聊天记录明文。业务分析:从搜索引擎的角度而言,客户上述需求实为只利用聊天记录内容字段建立索引,但不希望保留原文。标题解决方案:方案1: 建立test索引,包含三个字段:itemid(聊天记录唯一id),date(聊天记录发布时间),content(聊天记录内容),解决思路:再配置mapping时,不...原创 2018-12-27 23:46:27 · 1256 阅读 · 0 评论 -
ES系列-Mapping-Meta_Fields-_id与_uid字段(索引、映射、字段)
每一个文档都属于一个type并且拥有一个_id,_id字段不会被索引,但可以通过_uid字段来访问该字段。_id相当于一个document的身份编号。_id在特定query中可以被获取,如term, terms, query_string, simple_string,但在聚合统计、自定义脚本以及排序时,不可以被使用,此时只能通过_uid来代替。示例1: 通过term/terms/query_...原创 2018-12-04 14:18:08 · 2426 阅读 · 0 评论 -
Elasticsearch配置jieba分词分析器
jieba分词是中文里面比较好的分词器,而当前Elasticsearch官方并不支持jieba分词,但可以通过配置plugins的方式使用jieba分词器作为es的analyzer。配置环境: - mac os 10.12 - elasticsearch 5.3.0 - jieba 5.3.0 (与es版本匹配)首先需要下载针对es的jieba分词插件,当前jieba分词插件对e...原创 2018-10-19 21:49:44 · 9401 阅读 · 2 评论