随笔分类 -  elasticsearch

文件级检索,像Lucene,solr,elasticsearch,可以大大降低数据服务器的压力,检索性能也比传统数据库高很多。
摘要:对于es的数据类型来说,如果它是一个复杂类型,而我们需要把复杂类型进行检索,那么应该定义成nested类型,而对于它的检索,如果是非集合数据,它与其它类型没有分别;而如果你的nested存储的数据是一个集合,那在进行不等于这种操作时,就需要说明一下了。 举例子 "id": "1", "operate 阅读全文
posted @ 2022-08-23 10:16 张占岭 阅读(284) 评论(0) 推荐(0) 编辑
摘要:重要说明 bulkIndex 批量索引文档更新,文档不存在就建立,存在就覆盖,如果文档原来有3个字段,批量更新时有2个字段,在bulkIndex之后,它最后会变成最新的2个字段 bulkUpdate 批量更新文档字段,如果文档原来有3个字段,批量更新时有2个字段,结果还是3个字段 依赖添加 <pro 阅读全文
posted @ 2022-06-24 14:11 张占岭 阅读(7939) 评论(0) 推荐(0) 编辑
摘要:es的Date类型支持的格式是有限的,默认是一个时间戳,可读性不是很好,需要解析之后才能使用,而它默认支持的格式只有如下几种,如果你在java里格式化的字符串不属于以下几种,将会出错。 UTC时间 //kibana里索引字段 @Field(type = FieldType.Date, format 阅读全文
posted @ 2021-12-10 13:52 张占岭 阅读(1985) 评论(0) 推荐(0) 编辑
摘要:es依赖包我们通常指两个org.elasticsearch:elasticsearch和org.elasticsearch.client:elasticsearch-rest-high-level-client,这两个包的版本需要对应上,你的索引初始化才能生效,否则你在实体上添加的@Setting, 阅读全文
posted @ 2021-12-06 10:38 张占岭 阅读(460) 评论(0) 推荐(0) 编辑
摘要:es存储两种数据 es中存储的数据分为两种,原始文档和索引文档(倒排索引),这两个内容都可以分别配置的。 我们的一个查询请求,会通过分词器将你的条件进行分词,然后去倒排索引表中查询目标值 当然,如果你的es设置了分片,并且是一个多节点的集群环境,那他将在这些分片中进行检索,最后再合并 每个分片都有一 阅读全文
posted @ 2021-11-12 13:44 张占岭 阅读(1028) 评论(0) 推荐(0) 编辑
摘要:elasticsearch里的string类型被分为了text和keyword类型,下面详细来介绍这两种类型的使用场景: text类型 分词后进行索引 支持fields属性,可以在fields中添加keyword子类型,以实现精确检索 分词器默认standard ,对于中文来说就是按字分词 不支持聚 阅读全文
posted @ 2021-11-09 20:51 张占岭 阅读(2618) 评论(0) 推荐(0) 编辑
摘要:seq_no_primary_term这个错误在聚合操作时出现的问题,这个问题是由于es客户端的版本与服务端版本不兼容的问题,例如:你的客户端是6.8.7,而es服务器版本是6.5.4,这时再进行topHits聚合操作时,就会出现这个错误。 es服务器版本 es客户端版本 <dependency> 阅读全文
posted @ 2021-02-04 17:54 张占岭 阅读(889) 评论(0) 推荐(0) 编辑
摘要:之前写过《es~通过ElasticsearchTemplate进行聚合操作》的文章,这一次主要写一个嵌套的聚合,例如先对sex集合,再对desc聚合,最后再对age求和,共三层嵌套。 Aggregations的部分特性类似于SQL语言中的group by,avg,sum等函数,Aggregation 阅读全文
posted @ 2020-09-01 14:00 张占岭 阅读(4158) 评论(0) 推荐(1) 编辑
摘要:部署服务 docker run启动elastic服务 docker compose.yml的方式部署 elastic常用命令 查看集群是否健康 获取集群的节点列表 列出所有索引 建立名为customer的索引 向索引customer,类型为external,添加数据 获取数据 获取customer索 阅读全文
posted @ 2019-08-20 18:05 张占岭 阅读(1611) 评论(0) 推荐(0) 编辑
摘要:全文检索这个系列在几前年写过lucene的文章,而现在看来它确实已经老了,它的儿子孙子都出来了,已经成为现在检索行列的主流,像solr,elasticsearch等,今天我们主要来看一个solr在aspnetcore里的使用,也就是增删改查之类的,比较容易! nuget包:solrnet 注入方式: 阅读全文
posted @ 2017-12-20 15:19 张占岭 阅读(2021) 评论(0) 推荐(0) 编辑
摘要:Lucene.net是.net环境中比较强的全文检索工具,它是从JAVA中转过来的,.net版本的lucene在功能上也豪不逊色于java版的lucene。今天主要来说一下lucene索引文件在更新时的一些方式。一 整个索引文件 (cfs文件)覆盖更新;优点:简单,缺点:与服务器没有交互,但在生成索引文件时对IO影响比较大,前台lucene信息显示与数据库不同步。二 索引文件按需要更新(对document记录进行curd操作),优点:与数据库同步,缺点:与服务器交互多,对于curd的安全性要重视起来,但这样做是必须的。下面主要说一下第二种索引文件按需要更新的情况追加document(记录):当 阅读全文
posted @ 2012-08-24 15:11 张占岭 阅读(2432) 评论(1) 推荐(4) 编辑
摘要:这两天一直再搞这个东西,呵呵,为了提升WWW服务器整体性能,准备把Lucene系统放在另一台服务器上,当用户进行查询时,先向WWW服务器提出请求,由 WWW服务器组装数据并提交给LuceneWebService服务器,LuceneWebService服务器根据其条件返回相应的数据结果集,最后由WWW将结果返回给客户端。 说的很清楚,看一下要实现这种方式的几个知识点: 1 服务器与服务器之间的... 阅读全文
posted @ 2012-02-22 15:52 张占岭 阅读(1466) 评论(0) 推荐(1) 编辑
摘要:本篇主要说一个lucene使用多个条件同时匹配的情况,如图所示 这个检索表示四个条件同时满足的结果,其中分类关键categoryname这个唯一字段,年级与科目比较复杂,它们两个同时关联propertyname字段,字段内容用| 分割,关键字它关键所有字段,在WEB项目中,首先需要对年级与科目进行处理,让它们形成一个|分割的形式 GroupPropertyName方法如下: 而在lucene底层需要对这三种检索形式进行设置 这样,我们就可以找到条件的结果集了。 阅读全文
posted @ 2012-02-20 11:31 张占岭 阅读(1528) 评论(0) 推荐(1) 编辑
摘要:回到目录我架构的以lucene为技术的全文检索分为lucene检索模块,索引文件生成器和WEB检索测试三个部分组成结构如下:lucene模块它由通过检索项和几个具体检索业务子项目组成通过功能项目结构为:其中的一个子项目结构为子项目只负责自己业务的实现,createIndexFile这个类型主要实现的... 阅读全文
posted @ 2012-02-18 23:38 张占岭 阅读(1735) 评论(3) 推荐(0) 编辑