ES搜索社区】的更多相关文章

好问题 1.比如我要索引的条目为“33分钟侦探”,我想在用户输入“3”.“33”.“三三”.“三十三”.“三十三分钟”等的情况下都命中该条目,请问有没有什么好的方式实现? PS:使用的是ansj分词器 https://elasticsearch.cn/question/1812 2.elasticsearch打分优化 1.比如搜索“感冒",有如下2个标题:1,"感冒感冒感冒感冒感冒感冒"2,"感冒了,要吃什么药" 如何让标题2的评分比标题1的评分高 htt…
访问我的博客 自从使用 ElasticSearch 重构了主站的搜索项目之后,之后又陆续接入了其他两个项目,目前使用 SpringBoot 方式跑了一个伪集群,主站使用的时候,比较稳定,没有人反馈说有问题. 但新接入的一个站点商务反馈说,搜索不够准确,完全匹配的关键词不是排在搜索结果列表首位,跑到搜索上去看了一眼,确实完全匹配的结果分数不是最高的,导致没有排在结果首位,今天就来解决这个问题. 默认匹配查询 先看看我之前写的查询代码片段, MultiMatchQueryBuilder matchQ…
一.前言 在实际使用中搜索结果中的关键词前端通常会以特殊形式展示,比如标记为红色使人一目了然.我们可以通过 ES 提供的高亮功能实现此效果. 二.代码实现 前文查询是通过一个继承 ElasticsearchRepository 的接口实现的,但是如果要实现高亮,这种方式就满足不了了,这里我们需要通过 ElasticsearchTemplate 来完成. 2.1 注入 ElasticsearchTemplate ① ElasticsearchTemplate 类简介 public class El…
一.前言 上篇介绍了搜索结果高亮的实现方法,本篇主要介绍搜索结果相关性排序优化. 二.相关概念 2.1 排序 默认情况下,返回结果是按照「相关性」进行排序的--最相关的文档排在最前. 2.1.1 相关性排序(默认) 在 ES 中相关性评分 由一个浮点数表示,并在搜索结果中通过「 _score 」参数返回,默认是按照 _score 降序排列. 2.1.2 按照字段值排序 使用「 sort 」参数实现,可指定一个或多个字段.然而使用 sort 排序过于绝对,它会直接忽略文档本身的相关度,因此仅适合在…
一.前言 上篇介绍了 ES 的基本概念及环境搭建,本篇将结合实际需求介绍整个实现过程及核心代码. 二.安装 ES ik 分析器插件 2.1 ik 分析器简介 GitHub 地址:https://github.com/medcl/elasticsearch-analysis-ik 提供两种分词模式:「 ik_max_word 」及「 ik_smart 」 分词模式 描述 ik_max_word 会将文本做最细粒度的拆分,比如会将"中华人民共和国国歌"拆分为"中华人民共和国,中华…
一.前言 上篇介绍了 ES 的基础搜索,能满足我们基本的需求,然而在实际使用中还可能希望搜索「番茄」能将包含「西红柿」的结果也罗列出来,本篇将介绍如何实现同义词之间的搜索. 二.安装 ES 同义词插件 2.1 同义词插件简介 GitHub 地址:https://github.com/ginobefun/elasticsearch-dynamic-synonym 定时从 MySQL 中获取自定义词库,支持「扩展词」及「停用词」 2.2 安装步骤 参考 GitHub 中的项目说明 三.自定义分析器…
一.前言 上篇介绍了 ES 的同义词搜索,使我们的搜索更强大了,然而这还远远不够,在实际使用中还可能希望搜索「fanqie」能将包含「番茄」的结果也罗列出来,这就涉及到拼音搜索了,本篇将介绍如何具体实现. 二.安装 ES 拼音插件 2.1 拼音插件简介 GitHub 地址:https://github.com/medcl/elasticsearch-analysis-pinyin 2.2 安装步骤 ① 进入 ES 的 bin 目录 $ cd /usr/local/elasticsearch/bi…
一.前言 本系列文章最终目标是为了快速搭建一个简易可用的搜索服务.方案并不一定是最优,但实现难度较低. 二.背景 近期公司在重构老系统,需求是要求知识库支持全文检索. 我们知道普通的数据库 like 方式效果及性能都不好,所以另寻出路,确定通过 Elasticsearch (下文简称「 ES 」)搜索引擎实现. 三.技术选型 因公司之前购买了阿里云的ES服务且版本为 5.5.3 ,下文选用的技术框架均基于此版本. ① Elasticsearch 5.5.3 一个基于Lucene的搜索服务器,提供…
地图搜索实现: ①参数: 左下角经纬度和右上角经纬度 图层数(zoom) 关键字等各种数据库中的字段 排序方式 具体的坐标点+距离 ②实现 a.用es作为关系库,首先先mapping所有的字段,然后用laravel命令把数据库中的数据导入到es中 b.收集前台参数 1.在矩形中查找: $es_geo['geo_bounding_box'] = array( 'location' => array( 'top_right' => array( 'lat' => $top_right_lat…
DSL 语法介绍 语法 范围 /_search 集群上搜索所有的索引 /index1/_search index1 /index1,index2/_search index1和index2 /index*/_search 以index开头的索引 RUL 查询:使用q,指定查询字符串,查询内容是kv键值对 curl -XGET "http://127.0.0.1:9200/kibana_sample_data_ecommerce/_search?q=customer_first_name:Eddi…
沿用该文章里的数据https://www.cnblogs.com/MRLL/p/12691763.html 查询时发现,一模一样的name,但是相关度不一样 GET /z_test/doc/_search { "explain": false, "query": { "match_phrase": { "name": "测试" } } } 结果 { , "timed_out" : fal…
Vector Space Model The vector space model provides a way of comparing a multiterm query against a document. The output is a single score that represents how well the document matches the query. In order to do this, the model represents both the docum…
Theory Behind Relevance Scoring Lucene (and thus Elasticsearch) uses the Boolean model to find matching documents, and a formula called the practical scoring function to calculate relevance. This formula borrows concepts from term frequency/inverse d…
Field-length norm How long is the field? The shorter the field, the higher the weight. If a term appears in a short field, such as a title field, it is more likely that the content of that field is about the term than if the same term appears in a mu…
When we run a simple term query with explain set to true (see Understanding the Score), you will see that the only factors involved in calculating the score are the ones explained in the preceding sections: PUT /my_index/doc/1 { "text" : "q…
ES读数据的过程: 1.ES客户端选择一个node发送请求,该请求作为协调节点(coordinating node): 2.corrdinating node 对 doc id 对哈希,找出该文档对应所在的shards,将请求转发到对应的node, 此时会使用round-robin 随机轮询算法,在primary shard 和 replica shard 之中选择一个 ,实现读请求的负载均衡: 3.接受请求的node 返回给document 给coordinate node: 4.coordi…
--题外话:最近发现了一些问题,一些高搜索量的东西相当一部分没有价值.发现大部分是一些问题的错误日志.而我是个比较爱贴图的.搜索引擎的检索会将我们的博文文本分词.所以图片内容一般是检索不到的,也就是说同样的问题最好是帖错误代码,日志,虽然图片很直观,但是并不利与传播.希望大家能够优化一部分博文的内容,这样有价值的东西传播量可能会更高. 本文主要是记录Elasticsearch5.3.1 IK分词,同义词/联想搜索设置,本来是要写fscrawler的多种格式(html,pdf,word...)数据…
1.lucene4.5源码分析系列:lucene概述 http://blog.csdn.net/liweisnake/article/details/10348969 http://www.cnblogs.com/forfuture1978/archive/2010/06/13/1757479.html  这个里面有下载内容 2.BM25算法 Lucene的Ranking算法修改:BM25算法 http://blog.csdn.net/wbia2010lkl/article/details/60…
[大数据]-Elasticsearch5.3.1 IK分词,同义词/联想搜索设置  原文地址:http://www.cnblogs.com/NextNight/p/6837407.html --题外话:最近发现了一些问题,一些高搜索量的东西相当一部分没有价值.发现大部分是一些问题的错误日志.而我是个比较爱贴图的.搜索引擎的检索会将我们的博文文本分词.所以图片内容一般是检索不到的,也就是说同样的问题最好是帖错误代码,日志,虽然图片很直观,但是并不利与传播.希望大家能够优化一部分博文的内容,这样有价…
转:http://www.dataguru.cn/article-11094-1.html 曾勇(Medcl),Elastic 工程师与布道师,2015 年加入 Elastic 公司.加入 Elastic 之前,在搜索和运维等方面积累了超过七年的经验.Elasticsearch 国内首批用户,自 2010 年起就开始接触 Elasticsearch,是 ES 中文社区发起人,也是 Elastic 在中国的首位员工. 我最早是从 2010 年 3 月开始接触 Elasticsearch ,后面在…
概要 本篇介绍Query DSL的语法案例,查询语句的调试,以及排序的相关内容. 基本语法 空查询 最简单的搜索命令,不指定索引和类型的空搜索,它将返回集群下所有索引的所有文档(默认显示10条): GET /_search {} 搜索多个索引 GET /index1,index2/_doc/_search {} 指定分页搜索 GET /_search { "from": 0, "size": 10 } get带request body HTTP协议,GET请求带bo…
摘要:ES已经成为了全能型的数据产品,在很多领域越来越受欢迎,本文旨在从数据库领域分析ES的使用. 本文分享自华为云社区<Elasticsearch数据库加速实践>,原文作者:css_blog . 一.方案说明 Elasticsearch主要功能是什么,不同的场景有不同的定位,在日志场景我们可以用ELK生态搭建日志分析系统,在搜索领域ES是当前最热门的搜索引擎.在大数据领域,ES可以对标Hbase提供海量日志的数据仓库:在数据库领域ES可以作为查询分析型的分析型数据库使用.ES已经成为了全能型…
大家好,helloworld.net 上线已经有近半年的时间了,转眼过的好快,在这半年的时间里,迭代了近10多个版本,优化了很多的体验,交互上的不足之处,同时也上线了我们的安卓 app, 苹果的因为还在申请开发者账号,所以暂时未上线 在这半年的时间内,网友很给力,也给出了很多的建议和优化,也有不少网友说愿意为 helloworld开发者社区出一份力,在这里我感谢这些支持我们的用户,helloworld开发者社区会一如既往的坚持免费,分享,干货的精神做一个 程序员自己的技术社区 今天我们来聊聊 g…
借助 App Search 提供的内置功能,您可轻松打造卓越的搜索体验.直观的相关度调整以及开箱即用的搜索分析,不仅可以优化所提供的内容,其提供的 API 还可帮助您将位于各处的所有内容源关联在一起.简单操作便可将所有功能部署完毕并成功运行,而且我们采用颠覆性的按资源计价模式,这意味着您仅需为所用的资源付费.在本次实战工作坊中,我们将向您展示  App Search 入门过程,以及为您演示如何随着数据量的增长轻松进行扩展. 9 月 28 日,特邀 Elastic 社区布道师--刘征老师为大家带来…
借助 App Search 提供的内置功能,您可轻松打造卓越的搜索体验.直观的相关度调整以及开箱即用的搜索分析,不仅可以优化所提供的内容,其提供的 API 还可帮助您将位于各处的所有内容源关联在一起.简单操作便可将所有功能部署完毕并成功运行,而且我们采用颠覆性的按资源计价模式,这意味着您仅需为所用的资源付费.在本次实战工作坊中,我们将向您展示  App Search 入门过程,以及为您演示如何随着数据量的增长轻松进行扩展. 12月23日,特邀 Elastic 社区布道师--刘征老师为大家带来< …
Elasticsearch 是一款分布式,RESTful 风格的搜索和数据分析引擎,可以从海量的数据中高效的找到相关信息.如 wiki 用 ES 进行全文检索及其高亮,Github 用其检索代码,电商平台用其做一些商品推荐等,具有丰富的使用场景. 在本篇文章中,主要涉及以下内容: ES 的核心功能及其应用场景的介绍 ES 逻辑架构(文档,索引)的介绍 ES 物理架构(集群,节点,shard 等)的介绍 ES 环境安装 ES 倒排索引 基础介绍 ES 介绍 Elasticsearch 核心功能:…
1.es简介 2.es优缺点 3.es使用 4.es可以解决的问题 5.es举例 6.es执行结果截图 7.es数据增量方案 8.使用es搜索 一.es简介 es是一个是一个实时的分布式搜索和分析引擎.它可以帮助你用前所未有的速度去处理大规模数据. 它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合. es是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说Lucene是当今最先进,最高效的全功能开源搜索引擎框架. es使用Lucene作为内部引擎,…
概述 Elasticsearch (ES)是一个基于 Lucene 的开源搜索引擎,它不但稳定.可靠.快速,而且也具有良好的水平扩展能力,是专门为分布式环境设计的. 特性 安装方便:没有其他依赖,下载后安装非常方便:只用修改几个参数就可以搭建起来一个集群 JSON:输入/输出格式为 JSON,意味着不需要定义 Schema,快捷方便 RESTful:基本所有操作(索引.查询.甚至是配置)都可以通过 HTTP 接口进行 分布式:节点对外表现对等(每个节点都可以用来做入口):加入节点自动均衡 多租户…
ES学习 1. 安装 1.1 ES 安装配置 curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.2.tar.gz tar xvf elasticsearch-5.1.2.tar.gz ln -s elasticsearch-5.1.2 elasticsearch 修改conf/elasticsearch.yaml文件,参考下面的文件 修改句柄 vm.max_map_count sudo v…
好久没写博文了, 最近项目中使用到了ElaticSearch相关的一些内容, 刚好自己也来做个总结. 现在自己也只能算得上入门, 总结下自己在工作中使用Java操作ES的一些小经验吧. 本文总共分为三个部分: 一:ES相关基本概念及原理 二:ES使用场景介绍 三:使用Java进行ES的增删改查及代码讲解 一:ES相关基本概念: ElasticSearch(简称ES)是一个基于Lucene构建的开源.分布式.RESTful的全文本搜索引擎. 不过,ElasticSearch却也不仅只是一个全文本搜…