Elasticsearch搜索之most_fields分析】的更多相关文章

顾名思义,most_field就是匹配词干的字段数越多,分数越高,也可设置权重boost. 下面是简易公式(详细评分算法请参考:http://m.blog.csdn.net/article/details?id=50623948): score=match_field1_score*boost+match_field2_score*boost+...match_fieldN_score*boost. 在很多情况下,这种搜索很有效,但存在一个弱点,就是当文档中的字段冗余信息过多,将会影响那些文档比…
cross_fields类型采用了一种以词条为中心(Term-centric)的方法,这种方法和best_fields及most_fields采用的以字段为中心(Field-centric)的方法有很大的区别. 它将所有的字段视为一个大的字段,然后在任一字段中搜索每个词条. operator:operator设为了and,表示所有的词条都需要出现: minimum_should_match:表示文本匹配度,控制搜索精度,向下取整. 相比most_fields与best_fields,解释起来可能…
顾名思义,best_field就是获取最佳匹配的field,另个可以通过tie_breaker来控制其他field的得分,boost可以设置权重(默认都为1). 下面从宏观上来讲的简单公式: score=best_field.score*boost+other_fields*boost.score*tie_breaker. 实际计算远比这个公式复杂得多,还要考虑分片因素.出现位置.文档长短等. 评分算法请参考:http://m.blog.csdn.net/article/details?id=5…
一次 ElasticSearch 搜索优化 1. 环境 ES6.3.2,索引名称 user_v1,5个主分片,每个分片一个副本.分片基本都在11GB左右,GET _cat/shards/user 一共有3.4亿文档,主分片总共57GB. Segment信息:curl -X GET "221.228.105.140:9200/_cat/segments/user_v1?v" >> user_v1_segment user_v1索引一共有404个段: cat user_v1_s…
ElasticSearch搜索 最基础的搜索: curl -XGET http://localhost:9200/_search 返回的结果为: { "took": 2, "timed_out": false, "_shards": { "total": 16, "successful": 16, "failed": 0 }, "hits": { "tota…
摘自:https://www.easyice.cn/archives/231 elasticsearch indices.recovery 流程分析与速度优化 目录 [隐藏] 主分片恢复流程 副本分片恢复流程 recovery 慢的原因分析 synced flush 机制 副分片如何做到和主分片一致的 提升 recovery 速度的建议 使用 _forcemerge 集群 FullRestart 的建议操作过程 一些用于查看 recovery 状态的命令 问题 参考: 基于版本:5.5.3 re…
ElasticSearch 线程池类型分析之 ExecutorScalingQueue 在ElasticSearch 线程池类型分析之SizeBlockingQueue这篇文章中分析了ES的fixed类型的线程池.本文分析scaling类型的线程池,以及该线程池所使用的任务队列:ExecutorScalingQueue 从ThreadPool类中可看出,scaling线程池主要用来执行ES的系统操作:FLUSH.FORCE_MERGE.REFRESH.SNAPSHOT...而fixed类型的线程…
ElasticSearch 线程池类型分析之 ResizableBlockingQueue 在上一篇文章 ElasticSearch 线程池类型分析之 ExecutorScalingQueue的末尾,谈到了处理ES 搜索操作(search)的线程池的一些实现细节,本文就以下几个问题分析SEARCH操作的线程池. 如何统计一个线程池中的任务的排队等待时间.执行时间?排队等待时间是指任务提交给了线程池,但尚未调度运行.执行时间是任务开始执行到执行完成这一段时间 如何设计一个可动态调整容量(最大长度)…
Elasticsearch 简介 Elasticsearch(ES)是一个基于Lucene 构建的开源分布式搜索分析引擎,可以近实时的索引.检索数据.具备高可靠.易使用.社区活跃等特点,在全文检索.日志分析.监控分析等场景具有广泛应用. lucene Lucene介绍与入门使用 Lucene.Net API Elasticsearch 中文社区:https://elasticsearch.cn/article/ Elasticsearch 官方文档:https://www.elastic.co/…
本文主要介绍 ElasticSearch 搜索相关的知识,首先会介绍下 URI Search 和 Request Body Search,同时也会学习什么是搜索的相关性,如何衡量相关性. Search API 我们可以把 ES 的 Search API 分为两大类,第一类是 URI Search,用 HTTP GET 的方式在 URL 中使用查询参数已达到查询的目的:另一类为 Request Body Search,可以使用 ES 提供的基于 JSON 格式的格式更加完备的查询语言 Query…
一.背景 这周在使用Elasticsearch搜索的时候遇到一个,对于同一个搜索请求,会出现top50返回结果和排序不一致的问题.那么为什么会出现这样的问题? 后来通过百度和google,发现这是因为Elastcisearch的分布式搜索特性导致.Elasticsearch在搜索时,会循环的选择主分片和其副本中的一个来计算和返回搜索结果,而由于主分片和副本中相关统计信息的不同,从而导致了同一个搜索串的评分的不一致,进而导致排序不一样.而造成这种主分片和副本统计信息不一致的具体原因,是因为文档删除…
一.ElasticSearch搜索介绍 1.ElasticSearch搜索方式主要分为以下两种: 1).URI Search:此种查询主要是使用Http的Get方法,在URL中使用查询参数进行查询: 如:http://localhost:9200/kibana_sample_data_ecommerce/_search?q=customer_first_name:Jim 这条URL中,q表示查询的内容,用来搜索名叫Jim的客户.用Postman进行查询,搜索结果如下图所示: 2).Request…
本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/AAkVdzmkgdBisuQZldsnvg 英文原文:https://qbox.io/blog/elasticsearch-search-tuning-part-2 作者:Adam Vanderbush 译者:杨振涛 目录 预索引数据 映射 避免使用脚本 强制合并只读索引 Elasticsearch搜索调优权威指南,是QBOX在其博客上发布的系列文章之一,本文是该系列的第二篇,主要介绍了索引预处理…
本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/qwkZKLb_ghmlwrqMkqlb7Q英文原文:https://qbox.io/blog/elasticsearch-search-tuning-5-0-ultimate-guide作者:Adam Vanderbush译者:杨振涛 目录 文档建模 全局序列号和延迟 多代关系 为文件系统缓存分配内存 Elasticsearch搜索调优权威指南,是QBOX在其博客上发布的系列文章之一,本文是该系列…
ElasticSearch 线程池类型分析之SizeBlockingQueue 尽管前面写好几篇ES线程池分析的文章(见文末参考链接),但都不太满意.但从ES的线程池中了解到了不少JAVA线程池的使用技巧,于是忍不住再写一篇(ES6.3.2版本的源码).文中给出的每个代码片断,都标明了这些代码是来自哪个类的哪个方法. ElasticSearch里面一共有四种类型的线程池,源码:ThreadPool.ThreadPoolType DIRECT("direct"), FIXED("…
参考自: http://how2j.cn/k/search-engine/search-engine-springboot/1791.html?p=78908 工具版本: elasticsearch 6.2.2. kibana 6.2.2,  下载地址: elasticsearch.kibana 下载demo 1.kotlin版springboot项目创建 访问https://start.spring.io/, 创建项目demo(maven + kotlin + springboot 2.1.7…
章节 Elasticsearch 基本概念 Elasticsearch 安装 Elasticsearch 使用集群 Elasticsearch 健康检查 Elasticsearch 列出索引 Elasticsearch 创建索引 Elasticsearch 创建和查询文档 Elasticsearch 删除索引 Elasticsearch 修改数据 Elasticsearch 更新文档 Elasticsearch 删除文档 Elasticsearch 批处理 Elasticsearch 搜索数据…
章节 Elasticsearch 基本概念 Elasticsearch 安装 Elasticsearch 使用集群 Elasticsearch 健康检查 Elasticsearch 列出索引 Elasticsearch 创建索引 Elasticsearch 创建和查询文档 Elasticsearch 删除索引 Elasticsearch 修改数据 Elasticsearch 更新文档 Elasticsearch 删除文档 Elasticsearch 批处理 Elasticsearch 搜索数据…
Lucene的IndexSearcher提供一个explain方法,能够解释Document的Score是怎么得来的,具体每一部分的得分都可以详细地打印出来.这里用一个中文实例来纯手工验算一遍Lucene的评分算法,并且结合Lucene的源码做一个解释. 首先是测试用例,我使用"北京东路"来检索一个含有address域的文档. 然后是是输出,注意它有缩进,代表一个个的层级,下面以测试环境数据作为举例: { "value" : 0.7271681, "des…
首先从ES的支持的字段说起,ES文档中字段有多种类型 官方文档. 这几个比较常用: text,keyword,integer,float,boolean,object,geo_point(地理坐标),geo_shape(描述地理区域),date. 注:不要以为date只能表示 2015-01-01 这种类型,2015/01/01 12:10:30这种类型也一样可以,不像MySQL里面时间还分很多种细分的类型,ES就一个date类型. 注意:这里没有列出array,在ES中,array不是一种单独…
类似关系型数据库中每个字段都有对应的数据类型,例如nvarchar.int.date等等,elasticsearch也会将文档中的字段映射成对应的数据类型,这一映射可以使ES自动生成的,也是可以由我们自定义的.不同的映射关系是会影响到我们的搜索查询功能. GET /_search?q= # results GET /_search?q=-- # results ! GET /_search?q=date:-- # result GET /_search?q=date: # results ! 分…
学完本课题,你应达成如下目标: 掌握ES搜索API的规则.用法. 掌握各种查询用法 搜索API 搜索API 端点地址 GET /twitter/_search?q=user:kimchy GET /twitter/tweet,user/_search?q=user:kimchy GET /kimchy,elasticsearch/_search?q=tag:wow GET /_all/_search?q=tag:wow GET /_search?q=tag:wow 搜索的端点地址可以是多索引多m…
这篇介绍稍多,篇幅可能有点多,下面会针对一些重要的点做一些小测试 搜索返回文档解析 hits搜索返回的结果中最重要的一部分其中包含了 索引信息(_index,_type,_index,_source,_score),_source又是其中我们最需要的东西,里面包含了查询的整个文档的内容,默认返回10个文档,这块可以结合分页处理 took显示查询花费的时间 shards查询的数据实际都检索了几个分区,这块跟关系型数据库中的表分区差不多,mysql 中的 partitions 通过执行计划查看可以看…
ElasticSearch 基于的lucene开发的搜索服务技术;天生支持分布式; Es的结构 gatway:存储层,所有的数据可以存储在本地(多个es节点形成分布式存储),hdfs输出位置,共享文件等 分布式lucene框架:把lucene缺少的分布式支持,做成一个基于lucene的框架 ES自定义功能:ES自己的功能实现,例如关闭,打开索引,设置索引的读写权限等 功能插件:实现集群的管理,形成各种自定义插件,discovery自动发现功能 传输协议:支持http协议,支持thrift(AVR…
1.搜索---最基本的工具 我们可以将一个 JSON 文档扔到 Elasticsearch 里,然后根据 ID 检索.但 Elasticsearch 真正强大之处在于可以从无规律的数据中找出有意义的信息——从“大数据”到“大信息”. Elasticsearch 不只会存储(stores) 文档,为了能被搜索到也会为文档添加索引(indexes) ,这也是为什么我们使用结构化的 JSON 文档,而不是无结构的二进制数据. 文档中的每个字段都将被索引并且可以被查询 .不仅如此,在简单查询时,Elas…
上面我们已经介绍了Elasticsearch的一些基本操作,这篇文章属于进阶篇,我们一起来学习. 前面我们创建了sdb和user文档,现在我们来看如何查询user中所有的文档呢? GET /sdb/user/_search 此时输出入下: { "took" : 3, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "…
一.复合查询 1.在ElasticSearch中,有Query和Filter两种不同的Context.Query Context进行了相关性算分,Filter Context不需要进行算分,同时可以利用Cache,获取更好的性能. 2.bool Query:一个布尔查询,是一个或者多个查询子句的组合,总共有四种类型的子句,其中2种影响算分,2种不影响算分. 布尔查询也涉及相关性算分,因为匹配的子句越多,相关性算分越高.对于布尔查询中的每个查询子句计算得出的算分会被合并到总的相关性算分中. 子查询…
本篇文章对 Elasticsearch 做了基本介绍,在后续将通过专栏的方式持续更新,本系列以 Elasticsearch7 作为主要的讲解版本,欢迎各位大佬指正,共同学习进步! 一般涉及大型数据库的电子商务和搜索引擎的产品都面临这样一个问题,产品信息检索花费时间太长.这不良的用户体验,可能导致失去潜在的客户.这种滞后搜索归因于产品设计所使用到关系数据库,数据分散在多个表中,关系型数据处理这些表中数据获取搜索结果时工作速度是远远不能瞒足.可以说,现在的企业正在寻找数据存储的替代品,以期促进快速检…
1,创建mapping: PUT /news_website { "mappings": { "news" : { "properties" : { "title" : { "type": "text", "analyzer": "ik_max_word", "fields": { "suggest" : {…
关于我,邯郸人. 对这类话题感兴趣?欢迎发送邮件至donlianli@126.com 请支持原创http://www.cnblogs.com/donlianli/p/3857500.html    es在查询时,可以指定搜索类型为QUERY_THEN_FETCH,QUERY_AND_FEATCH,DFS_QUERY_THEN_FEATCH和DFS_QUERY_AND_FEATCH.那么这4种搜索类型有什么区别?   分布式搜索背景介绍: ES天生就是为分布式而生,但分布式有分布式的缺点.比如要搜…