
【Elasticsearch】
文章平均质量分 71
barnett_y
成功道路并不拥挤,因为坚持的人不多。。。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Elasticsearch5.x版本中对Text类型进行聚合时提示illegal_argument_exception
"answer": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } }, I try to execute this aggregatio "aggs": { "answer": { "terms": { "field": "answer" ...原创 2021-11-10 09:10:47 · 255 阅读 · 0 评论 -
通过 Elasticsearch 实现聚合检索
目录1 普通聚合分析 1.1 直接聚合统计 1.2 先检索, 再聚合 1.3 扩展: fielddata和keyword的聚合比较 2 嵌套聚合 2.1 先分组, 再聚合统计 2.2 先分组, 再统计, 最后排序 2.3 先分组, 组内再分组, 然后统计、排序 版权声明1 普通聚合分析1.1 直接聚合统计(1) 计算每个tag下的文档数量, 请求语法:GET book_shop/it_book/_search{ "size": 0,原创 2021-08-25 20:23:02 · 825 阅读 · 0 评论 -
npm 同时安装同一个包的不同版本(npm@6.9 alias)
npm 无法同时安装同一个 package 的不同版本,以往遇到这种需求的时候,我的办法是自己新建一个包,然后在新建的包里安装目标包的一个版本,然后暴露出去。这样,项目就可以依赖新建的包和另一个版本,实现同时依赖两个版本的目的。在 npm 6.9 以后,npm 可以为安装的包使用别名,可以近乎完美地解决这个问题了。elasticsearch-js 项目有一段详细说明如何使用,我把这一段翻译了一下。同时使用多个版本如果你同时使用多个版本的 Elasticsearch, 你需要使用对应的多个客户端。原创 2021-08-24 21:01:46 · 4270 阅读 · 0 评论 -
Elasticsearch5.x版本中对Text类型进行聚合时提示illegal_argument_exception
Having this field in my mapping"answer": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } },I try to execute this aggregation"a.原创 2021-08-20 17:34:49 · 530 阅读 · 0 评论 -
Elasticsear使用文档
Elasticsearch 核心术语核心概念ES -> 数据库索引 index -> 表文档 document -> 行(记录)字段 fields -> 列映射 mapping -> 表结构近实时 NRT -> Near real time 近实时的搜索节点 node -> 每一个服务器stu_index{ id: 1001, name: jason, age: 19},{ id: 1002,转载 2021-04-26 15:57:26 · 722 阅读 · 0 评论 -
ElasticSearch学习笔记 | Term和Keyword精确查询
本文测试数据为官方提供的测试数据,导入方法在学习笔记本章节第一篇中:https://blog.youkuaiyun.com/qq_20051535/article/details/113242821一、Term查询返回在提供的字段中包含确切信息的文档内容。您可以使用精确的值(例如价格,产品ID或用户名)利用 Term 查询查找文档。比如我们查询年龄是33岁的:GET /bank/_search{ "query": { "term": { "age": 33 } }...转载 2021-04-25 16:40:13 · 1311 阅读 · 0 评论 -
ElasticSearch学习笔记 | Filter过滤查询
本文测试数据为官方提供的测试数据,导入方法在学习笔记本章节第一篇中:https://blog.youkuaiyun.com/qq_20051535/article/details/113242821布尔查询中的每个must、should和must not元素都称为查询子句。文档满足每个 must 或 should 子句中的标准的程度有助于文档的相关性得分。分数越高,文档就越符合您的搜索条件。默认情况下,Elasticsearch返回按这些相关性得分排序的文档。must_not 子句中的条件被视为 filter。原创 2021-04-25 16:37:53 · 686 阅读 · 0 评论 -
ElasticSearch学习笔记 | Multi_match多字段匹配、bool复合查询
本文测试数据为官方提供的测试数据,导入方法在学习笔记本章节第一篇中:https://blog.youkuaiyun.com/qq_20051535/article/details/113242821一、Multi_match多字段匹配例:查询 address 和 city 中任意一项包含 mill 的结果GET bank/_search{ "query": { "multi_match": { "query": "mill", "fields": ["address", ...原创 2021-04-25 16:36:20 · 1266 阅读 · 0 评论 -
ElasticSearch学习笔记 | Match和Match_phrase匹配搜索
https://www.bilibili.com/video/BV1py4y1r7Ar?p=12&spm_id_from=pageDriver本文测试数据为官方提供的测试数据,导入方法在学习笔记本章节第一篇中:https://blog.youkuaiyun.com/qq_20051535/article/details/113242821一、基本类型(非字符串),精确匹配查询account_number 是 20 的所有结果:GET bank/_search{ "query": { ...转载 2021-04-25 16:34:29 · 843 阅读 · 0 评论 -
ElasticSearch 官网测试数据
一) 准备测试数据去官网下载测试数据https://download.elastic.co/demos/kibana/gettingstarted/logs.jsonl.gzhttps://download.elastic.co/demos/kibana/gettingstarted/accounts.ziphttps://download.elastic.co/demos/kibana/gettingstarted/shakespeare_6.0.json二) 解压数据到目录本次操作在虚拟中,我的解原创 2021-04-25 16:22:01 · 2901 阅读 · 1 评论 -
ElasticSearch学习笔记 | Aggregations执行聚合
本文测试数据为官方提供的测试数据,导入方法在学习笔记本章节第一篇中:https://blog.youkuaiyun.com/qq_20051535/article/details/113242821Aggregations执行聚合聚合提供了从数据中分组和提取数据的能力。最简单的聚合方法大致等于 SQL GROUP BY 和 SQL 聚合函数。在 Elasticsearch 中,您有执行索返回 hits(命中结果),并且同时返回聚合结果,把一个响应中的所有hits(命中结果)隔开的能力。这是非常强大且有效的,您可以转载 2021-04-25 10:41:19 · 449 阅读 · 0 评论 -
ElasticSearch学习笔记 | 分词、IK分词器和自定义分词
一个 tokenizer(分词器)接收一个字符流,将之割为独立的 tokens(词元,通常是独立的单词),然后输出 tokens流。例如,whitespace tokenizer遇到空白字符时分割文。它会将文本 "Quick brown fox!“ 分割为 [Quick, brown, fox]。该 tokenizer(分词器)还负责记录各个term(词条)的顺序或 position 位置(用于 phrase短语和 word proximity 词近邻查询),以及term(词条)所代表的原始word(单转载 2021-04-25 10:37:59 · 388 阅读 · 0 评论 -
ElasticSearch学习笔记 | Mapping映射的创建、修改和删除
本文测试数据为官方提供的测试数据,导入方法在学习笔记本章节第一篇中:https://blog.youkuaiyun.com/qq_20051535/article/details/113242821一、查询映射映射是定义文档及其包含的字段的存储和索引方式的过程。例如,使用映射定义:哪些字符串字段应视为全文字段。哪些字段包含数字,日期或地理位置。日期值 的格式。自定义规则,用于控制动态添加字段的映射 。查询bank的映射信息GET /bank/_mapping返回结果:{ "bank" :.转载 2021-04-25 10:35:34 · 674 阅读 · 0 评论 -
ElasticSearch学习笔记 | Match_ALL进阶检索
一、导入测试数据ElasticSearch官方为我们准备了一部分测试数据供调试使用,我们可以在安装完成Kinaba后进行数据导入处理1. 获取数据打开https://github.com/elastic/elasticsearch/blob/master/docs/src/test/resources/accounts.json复制全部数据(点击 Raw 按钮,新页面 Ctrl + A)2. 执行批量添加打开 Kibana :xxxx:5601/app/dev_tools#/conso..转载 2021-04-25 10:34:33 · 2366 阅读 · 0 评论 -
es中filtered和filter的区别
1. bool 和 filtered1.1 说明es 5.0版本更新后,filtered的查询将替换为bool查询。filtered是比较老的的版本的语法。现在目前已经被bool替代。推荐使用bool。官方文档地址:链接1.2 示例使用老版本写法GET _search{ "query": { "filtered": { "query": { "match": { "text": "quick brown fox" ...转载 2021-04-19 20:47:05 · 1197 阅读 · 0 评论 -
Elasticsearch Search API
当执行一个搜索时,它将这个搜索请求广播给所有的索引分片。可以通过提供路由参数来控制要搜索哪些分片。例如,当检索tweets这个索引时,路由参数可以设置为用户名:curl -X POST "localhost:9200/twitter/_search?routing=kimchy" -H 'Content-Type: application/json' -d'{ "query": { "bool" : { "must" : {转载 2021-04-19 20:40:40 · 246 阅读 · 0 评论 -
Elasticsearch filter过滤查询
注:本实例代码是在ESmarvel插件中执行# ---------------------------------------# filter 查询# 建立测试数据_1POST /store/products/_bulk{ "index": {"_id": 1}}{ "price": 10, "productID": "SD1002136"}{ "index": {"_id": 2}}{ "price": 20, "productID": "SD2678421"}{ "index...转载 2021-04-19 20:30:01 · 484 阅读 · 0 评论 -
Elasticsearch 基本查询
注:本实例代码是在ESmarvel插件中执行# 初始化索引GET http://127.0.0.1:9200/library/{ "settings" :{ "index": { "number_of_shards": 5, "number_of_replicas": 1 } }}# 通过GET 带上参数_settings可以获得该索引详细的配置信息GET /library/_settingsGET /library,lebron/...转载 2021-04-19 20:28:43 · 268 阅读 · 0 评论 -
Elasticsearch之查询与过滤。
查询与过滤 事实上关于结构化查询语句,我们可以使用两种结构化语句:结构化查询(Query DSL)和结构化过滤(Filter DSL)。查询与过滤语句非常相似,但是它们由于使用目的不同而稍有差异。 一条过滤语句会询问每个文档的字段值是否包含着特定值:是否 created 的日期范围在 2013 到 2014 ? 是否 status 字段中包含单词“published” ? 是否 lat)lon 字段中的地理位置与目标点相距不超过 10km?...原创 2021-04-19 20:17:57 · 587 阅读 · 0 评论 -
Elasticsearch filter过滤查询
注:本实例代码是在ESmarvel插件中执行# ---------------------------------------# filter 查询# 建立测试数据_1POST /store/products/_bulk{ "index": {"_id": 1}}{ "price": 10, "productID": "SD1002136"}{ "index": {"_id": 2}}{ "price": 20, "productID": "SD2678421"}{ "index...转载 2021-04-19 20:06:54 · 514 阅读 · 0 评论 -
Elasticsearch学习之路
ik分词器ik_max_word:将文本做最细粒度划分。ik_smart:最粗粒度划分ik_smart测试ik_max_word测试发现问题:狂神说并没有被当做一个词,这就需要自定义配置ik分词器自定义字典在config文件下的IKAnalyzer.cfg.xml增加自定义字典my.dic再重新看ik_max_word效果:ik_smart效果:Restful接口:>>创建一个索引PUT /索引名/类型名/文档id.原创 2021-04-18 19:37:52 · 178 阅读 · 0 评论 -
如何用 Node.js 和 Elasticsearch 构建搜索引擎
Elasticsearch是一款开源的搜索引擎,由于其高性能和分布式系统架构而备受关注。本文将讨论其关键特性,并手把手教你如何用它创建 Node.js 搜索引擎。Elasticsearch 概述Elasticsearch 底层使用Apache Lucene库,Apache Lucene 自身是一款高性能、基于文本的搜索引擎库。 Elasticsearch 并不以提供数据存储和检索等类数据库功能为核心目标,相反,它以搜索引擎(服务器端)为目标,意在提供数据索引、数据检索、和数据实时分析功能E...转载 2021-04-18 16:34:40 · 773 阅读 · 0 评论 -
Mac安装elasticsearch-- head插件
需要nodejs和git的支持brew install node查看是否安装成功 node -v➜ ~ node -vv6.9.2➜ ~看到版本,说明安装成功➜ ~ git --versiongit version 2.9.3 (Apple Git-75)➜ ~本机已经有git下载head插件 打开https://github.com/mobz/elasticsearch-headgit clone git://github.com/mobz/elastics...转载 2021-04-18 15:36:02 · 761 阅读 · 0 评论 -
Elasticsearch DSL 查询详解
在 Elasticsearch 中,提供了功能十分丰富、多种表现形式的查询语言——DSL 查询。DSL 查询使用 JSON 格式的请求体与 Elasticsearch 交互,可以实现各种各样的查询需求。DSL 查询主要包含两种类型的查询语句:叶子查询语句 : 用于查询特殊字段的特殊值,例如:match, term, range 等。复合查询语句 : 可以合并其他的叶子查询或复合查询,从而实现非常复杂的查询逻辑。查询语句的执行结果依赖于它们是用于查询语境还是过滤语境。基本语法使用 DS.转载 2021-04-16 11:22:07 · 2461 阅读 · 0 评论 -
实战:Nodejs+Mongodb+Elasticsearch 实现简单的搜索
在网站建立初期,我们提供的搜索服务很多都是基于数据库的模糊搜索,在性能和可用性上多少会有所缺失,所以在网站发展壮大后,就不得不增强搜索功能。elasticsearch 的基本功能就已经足够一般的搜索需求。本文将介绍,如何使用 nodejs + mongodb + es 实现一个简单而强大的全文搜索功能,以提高网站搜索体验。基本架构图数据存储在 mongodb使用 elasticsearch 作为搜索数据库nodejs 用官方客户端 elasticsearch-js 请求 elasticse转载 2021-04-13 14:54:00 · 772 阅读 · 0 评论 -
使用nodejs搜索elasticsearch(DSL)
使用nodejs搜索elasticsearch一、npm 安装elasticsearch模块二、启动elasticsearch三、elasticsearch查询语句(query DSL)四、查询、删除内容、删除索引demo查询删除索引中日志的内容删除索引一、npm 安装elasticsearch模块npm install elasticsearch1二、启动elasticsearch启动的的elasticsearch服务,而非步骤一中安装的npm模块。对elasticsearch的介转载 2021-04-13 10:59:26 · 1117 阅读 · 0 评论 -
Elasticsearch常用查询
query DSLmatch 查询{ "match": { "tweet": "About Search" } }注:match查询只能就指定某个确切字段某个确切的值进行搜索,做精确匹配搜索时,你最好用过滤语句,因为过滤语句可以缓存数据。match_phrase 查询{ "query": { "match_phrase": { "title": "quick brown fox" } .转载 2021-04-13 10:59:38 · 195 阅读 · 0 评论 -
23个有用的Elasticsearch示例查询
为了说明Elasticsearch中的不同查询类型,我们将使用以下字段搜索书籍文档的集合:标题,作者,摘要,发布日期和评论数。但首先,让我们使用批量API创建一个新索引并索引一些文档:PUT /bookdb_index { "settings": { "number_of_shards": 1 }}POST /bookdb_index/book/_bulk { "index": { "_id": 1 }} { "title": "Elasticsearch: The转载 2021-04-13 11:00:00 · 577 阅读 · 0 评论 -
ElasticSearch-查询语句详解
url参数搜索这种方式就是类似于get请求,将请求参数拼接到链接上,例GET /school/student/_search?参数,多个参数用&分开查询所有命令:GET /school/student/_search返回:{ "took": 7, //查询耗时,毫秒 "timed_out": false, //是否超时,timeout 不是停止执行查询,它仅仅是告知正在协调的节点返回到目前为止收集的结果并且关闭连接 "_shards": { "tota.转载 2021-04-13 11:00:09 · 850 阅读 · 0 评论 -
Elasticsearch 常用基本查询
安装启动很简单,参考官网步骤:https://www.elastic.co/downloads/elasticsearch 为了介绍Elasticsearch中的不同查询类型,我们将对带有下列字段的文档进行搜索:title(标题),authors(作者),summary(摘要),release date(发布时间)以及number of reviews(评论数量),首先,让我们创建一个新的索引,并通过bulk API查询文档: 为了展示Elasticsearch中不同查询的用法,首先在Ela原创 2021-04-13 11:00:23 · 3294 阅读 · 0 评论 -
Elasticsearch:Elasticsearch 开发入门 - Nodejs
在本文中,我将分享如何在 Node.js 中如何使用Elasticsearch 来开发的经验。 顺便说一句,以防万一你从未听说过 Elasticsearch:Elasticsearch 是一个高度可扩展的开源全文本搜索和分析引擎。 它使你可以快速,近乎实时地存储,搜索和分析大量数据。 它通常用作支持具有复杂搜索功能和要求的应用程序的基础引擎/技术。如果你想了解更多关于 Elasticsearch 的介绍,你可以参阅我之前的文章 “Elasticsearch 简介”。前提条件你需要..转载 2021-04-08 16:53:26 · 878 阅读 · 0 评论 -
ElasticSearch 最全详细使用教程
一、快速入门查看集群的健康状况http://localhost:9200/_cat1查看ES集群的master主节点状态#curl -XGET 'http://10.0.8.47:9200/_cat/nodes?v'host 1查看Elasticsearch健康状态http://localhost:9200/_cat/health?v1说明:v是用来要求在结果中返回表头正常情况下,Elasticsearch 集群健康状态分为三种:green:最健转载 2021-04-08 16:47:46 · 4249 阅读 · 0 评论 -
Elasticsearch+Logstash+Kibana教程
Elasticsearch中文参考文档Elasticsearch官方文档Elasticsearch其他——那些年遇到的坑Elasticsearch 管理文档Elasticsearch集群配置以及REST API使用Elasticsearch集群管理Elasticsearch 数据搜索篇·【入门级干货】Elasticsearch使用REST API实现全文检索Windows下elasticsearch插入数据报错!Kibana中doc与search策略的区别Elas转载 2021-04-08 16:27:11 · 329 阅读 · 0 评论 -
Elasticsearch入门必备——ES中的字段类型以及常用属性
背景知识在Es中,字段的类型很关键:在索引的时候,如果字段第一次出现,会自动识别某个类型,这种规则之前已经讲过了。 那么如果一个字段已经存在了,并且设置为某个类型。再来一条数据,字段的数据不与当前的类型相符,就会出现字段冲突的问题。如果发生了冲突,在2.x版本会自动拒绝。 如果自动映射无法满足需求,就需要使用者自己来设置映射类型,因此,就需要使用者了解ES中的类型。下面就步入正题吧!字段中的索引和存储其中需要说明的是:index定义字段的分析类型以及检索方式如果是no,则无法通转载 2021-04-08 16:25:15 · 2335 阅读 · 0 评论 -
Elasticsearch Javascript API增删改查
查询根据索引、类型、id进行查询:client.get({ index:'myindex', type:'mytype', id:1 },function(error, response){// ...});根据某个查询条件,查询某个索引的所有数据client.search({ index:'myindex', q:'title:test' },function(error, response){// ...});复杂一转载 2021-04-08 16:23:45 · 535 阅读 · 0 评论 -
Elastic:菜鸟上手指南
你好,我是 Elastic 的刘晓国, Elastic 认证工程师,认证分析师,阿里云最有价值专家。如果大家想开始学习 Elastic 的话,那么这里将是你理想的学习园地。在我的博客几乎涵盖了你想学习的许多方面,从初级到高级的方方面面。你如果真的想学习 Elastic Stack 的话,那么你所需要的就是这一篇文章就够了。在这里,我来讲述一下作为一个菜鸟该如何阅读我的这些博客文章。如果你真心喜欢我的文章,请不惜点个赞!让我们一起更好地学习!如果你想按照视频学习,请观看我的文章 “Elastic:培训视频”.转载 2021-04-08 15:58:02 · 1301 阅读 · 0 评论 -
开始使用Elasticsearch (1)
在今天的这篇文章中,我们来主要介绍一下如何使用 REST 接口来对 Elasticsearch 进行操作。为了完成这项工作,我们必须完成如下的步骤:安装 Elasticsearch。请参阅文章“如何在Linux,MacOS及Windows上进行安装Elasticsearch”。把 Elasticsearch 运行起来。安装 Kibana。请参阅文章“如何在Linux,MacOS及Windows上安装Elastic栈中的Kibana”。把 Kibana 运行起来。熟悉有关于 Elastic 栈的一些最转载 2021-04-08 15:41:41 · 356 阅读 · 0 评论 -
Kibana Mac安装
运行 es 必须先安装java8Kibana是ES的一个配套工具,让用户在网页中可以直接与ES进行交互。安装:brew install kibana安装完后执行:kibana 启动Kibana的默认端口是5601原创 2021-04-08 15:16:50 · 238 阅读 · 0 评论 -
ElasticSearch Mac安装
运行 es 必须先安装java81. 执行命令安装 esbrew install elasticsearch2. 运行 esbrew services start elasticsearch3. 本地浏览器访问 http://localhost:9200原创 2021-04-08 15:09:34 · 226 阅读 · 1 评论