【中间件-ElasticSearch】
文章平均质量分 79
【ElasticSearch - 搜索引擎】
我一直在流浪
这个作者很懒,什么都没留下…
展开
-
ElasticSearch系列 - SpringBoot整合ES:restHighLevelClient.count(countRequest, RequestOptions.DEFAULT)
这个示例代码执行了一个计数请求,查询 my_index 索引中 my_field 字段等于 my_value 的文档数量,并将结果保存在 count 变量中。该方法会返回一个 CountResponse 对象,表示计数请求的结果,包括符合查询条件的文档数量等信息。用于统计某个时间范围内处置状态为“已处置”或“处置中”的告警数量。原创 2023-05-25 15:31:19 · 2102 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES:分析器
当系统内置的分析器不满足需求时,用户可以使用自定义分析器。在有些场景中,某个文本字段不是自然语言而是在某种规则下的编码。① 创建索引时使用自定义分词器在settings部分中,定义了一个名为“comma_analyzer”的分析器,它使用名为“comma_tokenizer”的分词器。该分词器使用逗号作为分隔符,将文本分成多个词条。这个分析器可以用于分析“title”字段中的文本。在mappings部分中,title属性是一个文本类型,但使用了之前定义的“comma_analyzer”分析器进行分析。原创 2023-04-17 20:41:05 · 1684 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES:短语匹配查询 match_phrase
例如,如果查询是“quick brown fox”,match查询将匹配包含“quick”、“brown”或“fox”的文档,而不管它们的顺序如何。③ 如果想要 title 字段包含 ”文雅精品酒店“ 的文档也被查询到,则可以设置 match_phrase 查询的 slop 参数,它用来调节匹配词之间的距离阈值,默认为0,表示必须按照给定的顺序精确匹配。它会将查询字符串分解成单词,然后按照顺序匹配文档中的单词,只有当文档中的单词顺序与查询字符串中的单词顺序完全一致时才会匹配成功。原创 2023-04-11 11:14:30 · 4595 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES:多字段查询 multi_match
有时用户需要在多个字段中查询关键词,除了使用布尔查询封装多个match查询之外,可替代的方案是使用multi_match。可以在multi_match的query子句中组织数据匹配规则,并在fields子句中指定需要搜索的字段列表。"query" : "搜索文本" , "fields" : [ "字段1" , "字段2" , "字段3" ] } } }在上面的查询中,我们指定了要搜索的文本和要搜索的字段列表。ElasticSearch将搜索所有指定的字段,并将它们合并为一个结果集。原创 2023-04-11 10:31:46 · 3569 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES:全文搜索 match查询
具体来说,match查询会将查询字符串分词后,对每个词条进行搜索,并返回包含任意一个词条的文档。在使用match查询时,如果查询字符串中包含中文文本,Elasticsearch会使用相同的分词器对查询字符串进行分词处理,以便在倒排索引中查找匹配项。match查询是一种基于全文搜索的查询方式,它会将查询字符串分词后,与文档中的字段进行匹配。match查询会对查询字符串进行分词,operator 参数可以指定多个查询词之间的逻辑运算符, or 运算符将所有词条组合起来,返回匹配任意一个词条的文档。原创 2023-04-06 17:45:05 · 1499 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES:对查询结果进行自定义排序 Function_Score查询
上述请求使用了Function Score查询,其中,query子句负责对文档进行匹配,本例使用了简单的term查询,functions子句负责输出对文档的排序分值,此处使用了random_score随机函数,使得每个文档的分数都是随机生成的。当使用ES进行搜索时,命中的文档默认按照相关度进行排序。有些场景下用户需要干预该“相关度”,此时就可以使用 Function Score 查询。使用时,用户必须定义一个查询以及一个或多个函数,这些函数为每个文档计算一个新分数。原创 2023-04-04 17:25:20 · 933 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES:不对查询结果进行排序 Constant_Score 查询
Constant Score 查询是一种基于过滤器的查询,它可以将一个固定的分数应用于所有匹配的文档。它通常用于过滤掉不需要的文档或者只返回特定类型的文档。Constant Score 查询不会对匹配的文档进行评分也不会对搜索结果进行排序,因此它比其他查询更快,但也更简单。通过结果可以看到,使用 Constant Score 搜索时,不论该词在文档中出现多少次,这些文档的得分都是一样的,值为1.0。在Constant Score 搜索中,参数 boost 可以控制命中文档的得分,默认值为1.0。原创 2023-04-04 16:36:33 · 555 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES:filter 过滤器查询原理
为提升效率,ES会从最稀疏的数组开始遍历,因为遍历稀疏的数组可以过滤掉更多的文档。例如城市为“北京”过滤条件对应的 bitset 为[1,0,0,0,1],如果文档4的城市被修改为“北京”,则“北京”过滤条件对应的 bitset 会被自动更新为[1,0,0,1,1]。为提升查询效率,对于简单的 term 级别匹配查询,应该根据自己的实际业务场景选择合适的查询语句,需要确定这些查询项是否都需要进行打分操作,如果某些匹配条件不需要打分操作的话,那么应该把这些查询全部改成 filter 形式,让查询更高效。原创 2023-04-03 15:55:01 · 1091 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES:查询条件 query 和过滤条件 filter 的区别
需要注意的是,虽然过滤器(Filter)不会影响文档的相关性得分,但是当过滤器与查询条件组合使用时,查询结果仍然会根据文档与查询条件的匹配程度计算相关性得分。ElasticSearch中的过滤器(Filter)是一种用于限制查询结果范围的查询类型,它可以根据指定的条件来过滤掉不符合要求的文档,从而提高查询效率。在ElasticSearch中,过滤器(Filter)是一种用于限制查询结果范围的查询类型,它可以根据指定的条件来过滤掉不符合要求的文档,从而提高查询效率。原创 2023-03-30 21:26:56 · 2678 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES:组合多个查询条件 bool 查询
should查询可以设置一个minimum_should_match参数,用于指定至少需要匹配多少个查询条件才能返回文档。③ 在ElasticSearch的Bool查询中,可以使用should查询来指定多个查询条件,表示至少有一个条件必须匹配。例如,您可以使用bool查询来组合多个must查询和should查询,以便同时满足多个查询条件。③ must_not查询:所有的查询条件都必须不匹配才能返回文档。must_not查询:所有的查询条件都必须不匹配才能返回文档。内部的 bool 查询中的两个。原创 2023-03-30 19:32:18 · 7012 阅读 · 0 评论 -
ElasticSearch序列 - SpringBoot整合ES:根据指定的 ids 查询
即使您在索引文档时使用了整数作为ID,Elasticsearch也会将其转换为字符串类型,并将其存储在内部索引中。当您查询文档时,Elasticsearch会将文档ID作为字符串类型返回。然后,我们遍历查询结果中的每个文档,并使用Integer.parseInt方法将文档ID转换为整数类型。如果您需要将查询结果中的文档ID转换为整数类型,可以在查询结果中进行转换。我们索引文档时,文档的id为整型,为什么查询出来的文档 id为字符串类型呢?需要注意的是主键为_id,而不是id,如果使用id则查询结果会为空。原创 2023-03-30 11:27:53 · 2164 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES:查询字段不为空的文档 exists
用exists查询来检查文档中是否存在“tag”字段。如果存在,则该文档将被返回。如果不存在,则该文档将被过滤掉。在某些场景下,我们希望找到某个字段不为空的文档,则可以用exists搜索。在某些场景下,我们希望找到某个字段不为空的文档,则可以用exists搜索。② 查询 tag 字段值是数组但不是 [null] 的文档。② 查询 tag 字段值存在且不是 null 的文档。exist查询来检查文档中是否存在指定的字段或属性。② 查询 tag 字段值不是空数组的文档。值是数组,但不是 [null]原创 2023-03-30 10:41:41 · 4147 阅读 · 0 评论 -
ElasticSearch序列 - SpringBoot整合ES:范围查询 range
如果您需要搜索文本类型的数据,可以使用其他类型的查询,例如match查询、prefix查询、wildcard查询、regexp查询等。需要注意的是,使用range查询搜索字符串类型的数据时,查询结果是基于字典序的,而不是基于数值大小的。总之,您可以使用range查询来搜索字符串类型的数据,但是在索引时需要将字段映射为keyword类型,以便将其视为未经分词的字符串。文本类型的字段只能映射为text类型。字符串类型的字段可以映射为keyword类型或text类型,而文本类型的字段只能映射为text类型。原创 2023-03-29 18:04:26 · 4185 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES:多个精确值查询 terms
terms查询可以将多个值作为数组传递,以匹配包含任何一个指定值的文档,而term查询只能匹配包含单个指定值的文档。因此,如果要匹配包含多个值的文档,应该使用terms查询,而如果要匹配包含单个值的文档,应该使用term查询。但是,如果要查询包含"red"或"blue"颜色的文档,应该使用terms查询,而不是term查询。但是,如果要查询包含"tag1"或"tag2"的文档,应该使用terms查询,而不是term查询。对于数组类型的字段,可以将一个值作为数组传递给term查询,以匹配包含该值的文档。原创 2023-03-28 21:06:05 · 3554 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES:精确值查询 term
文本也可以是结构化的。由于 “title” 字段的类型为 keyword,因此 term 查询会将查询关键词作为一个整体进行匹配,只有当文档中的 “title” 字段的值与查询关键词完全匹配时,才会返回匹配的文档。因此,如果需要对文档进行评分排序,可以使用查询语句(如 match 查询、bool 查询等),如果只需要返回精确匹配的文档,可以使用过滤器语句(如 term 查询、range 查询等)。但是,需要注意的是,term查询是精确匹配查询,只能用于搜索精确匹配的值,而不能用于搜索范围或模糊匹配的值。原创 2023-03-28 17:44:06 · 2497 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES:映射中定义字段的数据类型及属性
在Elasticsearch中,搜索结果的准确性和召回率是非常重要的指标,它们反映了搜索引擎的性能和效果。以下是这两个指标的定义和解释:准确性:搜索结果的准确性是指搜索引擎返回的结果中有多少是与查询字符串相关的。如果搜索结果中包含大量与查询字符串无关的文档,那么搜索引擎的准确性就会降低。召回率:搜索结果的召回率是指搜索引擎返回的结果中有多少是与查询字符串相关的文档的比例。如果搜索引擎无法找到与查询字符串相关的文档,那么搜索引擎的召回率就会降低。在Elasticsearch中,每个字段都有一个数据类型,用于指原创 2023-03-28 16:56:47 · 2733 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES:查询所有 match_all
官方测试数据下载地址:https://download.elastic.co/demos/kibana/gettingstarted/accounts.zip ,数据量很大,我们自己构造数据吧。权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/structured-search.html。对匹配的搜索结果进行排序,相关性分数衡量每个文档与查询的匹配程度。最简单的查询,它匹配所有文档,默认给它们一个_score 1.0。原创 2023-03-27 19:10:45 · 537 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES:实现搜索结果排序 sort
具体来说,TF-IDF 算法会根据查询条件中每个词的词频(TF)和文档集合中包含该词的文档数的倒数(IDF)来计算每个查询条件与文档的匹配程度,然后将所有查询条件的匹配程度加权求和,得到文档的相关性得分。需要注意的是,相关性排序并不一定是最优的排序方式,因为它只考虑了查询条件与文档的匹配程度,而没有考虑其他因素,例如文档的时间戳、文档的重要性等。在某些情况下,其他排序方式可能更适合。需要注意的是,如果要按照非文本类型的字段进行排序,需要将字段的类型设置为相应的数据类型,否则可能会出现排序错误的情况。原创 2023-03-25 12:48:26 · 3477 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES:实现分页搜索 from+size、search after、scroll
ElasticSearch 向 my_index 索引中索引了 12 条文档:02. ElasticSearch 查询所有文档ElasticSearch 查询所有文档根据查询结果可以看出,集群中总共有12个文档,hits.total.value=12, 但是在 数组中只有 10 个文档。如何才能看到其他的文档?03. ElasticSearch size参数指定搜索结果的条数Elasticsearch 接受 和 参数:from 和 size 参数的默认值分别为 0 和 10,因此如果不指定这原创 2023-03-23 11:25:29 · 2397 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES:指定搜索结果返回的字段_source
在 ElasticSearch 中,可以使用 _source 字段来指定返回的字段。默认情况下,ElasticSearch 返回匹配文档的所有字段,但是可以通过 _source 字段来指定只返回需要的字段,这样可以减少网络传输和解析的开销,提高搜索性能。需要注意的是,如果某个字段被存储在索引中,但是没有被指定在 _source 字段中,那么在搜索结果中将无法获取该字段的值。在上面的示例中,我们使用 _source 字段来指定只返回 title 字段,同时使用 match 查询来搜索包含。原创 2023-03-20 21:44:08 · 2659 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES:解析搜索返回字段
部分告诉我们在查询中参与分片的总数,以及这些分片成功了多少个失败了多少个。如果我们遭遇到一种灾难级别的故障,在这个故障中丢失了相同分片的原始数据和副本,那么对这个分片将没有可用副本来对搜索请求作出响应。假若这样,Elasticsearch 将报告这个分片是失败的,但是会继续返回剩余分片的结果。:匹配的文档的分数。它衡量了文档与查询的匹配程度,默认情况下,首先返回最相关的文档结果,就是说,返回的文档是按照score 降序排列的。:与查询所匹配文档的_score的最大值。:匹配的文档的原始数据。原创 2023-03-20 19:42:23 · 2762 阅读 · 0 评论 -
ElasticSearch系列 - ElasticSearch 索引的增删改查操作
我们可以通过索引一篇文档创建一个新的索引 ,这个索引采用的是默认的配置,新的字段通过动态映射的方式被添加到类型映射。如果我们需要对这个建立索引的过程确保这个索引有数量适中的主分片,并且在我们索引任何数据之前 ,分析器和映射已经被建立好,那就需要手动创建索引,在请求体里面传入设置或类型映射。在Elasticsearch中,可以使用PUT请求创建一个新的索引,并通过settings参数指定分片数量和副本数量。如下:我们创建了一个名为my_index的索引,并指定了3个分片和2个副本。原创 2023-03-20 17:56:23 · 391 阅读 · 0 评论 -
ElasticSearch系列 - 分片内部原理之动态更新索引、近实时搜索、持久化变更、段合并
倒排索引被写入磁盘后是不可改变的,它永远不会修改。不变性有重要的价值:① 不需要锁。如果你从来不更新索引,你就不需要担心多进程同时修改数据的问题。② 一旦索引被读入内核的文件系统缓存,便会留在哪里,由于其不变性。只要文件系统缓存中还有足够的空间,那么大部分读请求会直接请求内存,而不会命中磁盘。这提供了很大的性能提升。③ 其它缓存(像filter缓存),在索引的生命周期内始终有效。它们不需要在每次数据改变时被重建,因为数据不会变化。原创 2023-03-14 23:11:50 · 1453 阅读 · 0 评论 -
ElasticSearch系列 - 分布式文档索引、搜索、更新和删除文档的过程
完成数据的存储后,该节点会将请求转发给该分片的其他副分片所在的节点,直到所有副分片节点全部完成写入,协调节点向客户端报告写入成功。当协调节点接收到来自客户端的获取某个索引的某文档的请求时,协调节点会找到该文档所在的所有分片,然后根据轮询算法在主/副分片中选择一个分片并将请求转发给该分片所在的节点,该节点会将目标数据发送给协调节点,协调节点再将数据返回给客户端。索引一个文档时,这个文档会被存储到主分片中,主分片再将数据拷贝到副本分片中,而主分片和各个副本分片都在不同的节点上,所以每个节点上都有。原创 2023-03-07 20:08:29 · 805 阅读 · 0 评论 -
ElasticSearch系列 - ElasticSearch基本概念及集群内部原理
通过将索引中的文档分布在多个分片上,并将这些分片分布在多个节点上,Elasticsearch 可以确保冗余,这既可以防止硬件故障,又可以在节点添加到集群时增加查询容量。默认情况下,Elasticsearch 索引每个字段中的所有数据,每个索引字段都有一个专用的、优化的数据结构。总结:在ES中,一个分片对应的就是一个Lucene索引,每个分片可以设置多个副分片,这样当主分片所在的计算机因为发生故障而离线时,副分片会充当主分片继续服务。倒排索引列出出现在任何文档中的每个唯一单词,并标识每个单词出现的所有文档。原创 2023-03-06 16:44:44 · 658 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES之全文搜索匹配查询 match
官方测试数据下载地址:https://download.elastic.co/demos/kibana/gettingstarted/accounts.zip ,数据量很大,我们自己构造数据吧。权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/structured-search.html。在匹配之前分析提供的文本,返回与提供的文本、数字、日期或布尔值匹配的文档。查询是执行全文搜索的标准查询,包括模糊匹配选项。原创 2023-03-04 11:20:10 · 1672 阅读 · 0 评论 -
ElasticSearch系列 - SpringBoot整合ES:实现文档的增删改操作
① 下载地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-4-2。⑦ kibana下载地址:https://www.elastic.co/cn/downloads/past-releases/kibana-7-4-2。⑦ kibana下载地址:https://www.elastic.co/cn/downloads/past-releases/kibana-7-4-2。原创 2023-02-24 17:23:08 · 3311 阅读 · 1 评论 -
ElasticSearch - 索引增加字段并查询增加字段前的历史数据
从上面的结果可以看出,在ElasticSearch中为已有索引增加一个新字段以后,老的数据并不会自动就拥有了这个新字段,也就不可能给他一个默认值。我们项目中有一个需求:ElasticSearch存在很多历史数据,然后需求中索引新增了一个字段,我们需要根据条件查询出历史数据,但历史数据中这个新增的字段并不存在,如何查询到历史数据呢?在ElasticSearch中,如果一个字段不存在或者这个字段的值为null,在检索的时候该字段会被忽略,因此也就无法做空值搜索。这个文档新增了height字段的值。原创 2023-02-23 20:18:41 · 3416 阅读 · 1 评论 -
ElasticSearch - 文档 | 索引文档 | 检索文档 | 创建索引并指明映射
无需进行执行管理任务,如创建一个索引或指定每个属性的数据类型之类的(可以不事先创建索引,也可以不事先指定映射),可以直接只索引一个文档。Elasticsearch 不仅存储文档,而且索引每个文档的内容,使之可以被检索。存储数据到 Elasticsearch 的行为叫做索引 ,但在索引一个文档之前,需要确定将文档存储在哪里。请求并指定文档的地址就可以返回原始的 json 文档,返回结果包含了文档的一些元数据,以及。索引(名词):一个索引类似于传统关系数据库中的一个数据库,是一个存储关系型文档的地方。原创 2023-02-23 19:23:11 · 683 阅读 · 0 评论 -
ElasticSearch - 如何根据最近30天、最近14天、最近7天、最近24小时、自定义时间范围查询MySQL中的数据?
*** 时间范围枚举:根据最近30天、最近14天、最近7天、最近24小时、自定义时间范围查询/*** 最近30天* 最近14天* 最近7天* 最近24小时/*** 前端传入的参数/*** 对应的天数/*** 根据前端传入参数名称获取TimeScopeEnum* @param name 前端传入参数名称} }/*** 根据自定义时间段查询}原创 2022-07-25 15:03:11 · 1649 阅读 · 0 评论 -
ElasticSearch - 对日期字段进行自定义序列化
执行自定义序列化方法,将 jsonString 反序列化为 Date 对象:执行自定义反序列化方法,将Date 对象转换为 JsonString:序列化和反序列化的另一写法:原创 2022-06-03 21:24:55 · 585 阅读 · 0 评论 -
ElasticSearch - ElasticSearch中的时间数据比实际少8小时问题
在往 ElasticSearch 中存了20条数据,当使用kibana查询时,可以看到Elasticsearch 中的时间数据比实际少8小时:在后台利用代码往 ElasticSearch 中存入时间数据时,使用的是当前时间,所在时区为东八区。https://1024tools.com/timestamp,当前时间 :当前时间 按(UTC+8)对应的时间戳为:存入ES的时间戳为: ,按(UTC+0)对应的时间为:。正好比正常时间少了8小时。......原创 2022-06-03 20:44:27 · 1622 阅读 · 1 评论 -
ElasticSearch - 如何根据最近xxx小时/最近xxx天/自定义时间区间查询数据?
【代码】项目 - 如何根据最近xxx小时/最近xxx天/自定义时间区间查询数据?原创 2021-12-14 11:01:47 · 1014 阅读 · 2 评论 -
ElasticSearch - 查询,修改,删除文档
代码】ElasticSearch查询,修改,删除文档。原创 2022-07-29 11:51:52 · 466 阅读 · 0 评论 -
ElasticSearch - 查询大于10000条的数据
当我们使用 ES 的时候,有时会比较关心匹配到的文档总数是多少,所以在查询得到结果后会使用 hits.total.value 这个值作为匹配的总数。但是,es官方默认限制索引查询最多只能查询10000条数据。因此可以将"track_total_hits"置为true ,解除最多查询10000条的限制:...原创 2022-06-25 15:18:48 · 2340 阅读 · 0 评论 -
深耕ElasticSearch - 过滤和聚合/多桶排序
文章目录1. 数据准备2. 过滤和聚合2.1 过滤2.2 过滤桶3. 多桶排序3.1 内置排序3.2 按度量排序4. 近似聚合1. 数据准备1、创建索引映射mapping :PUT /cars { "mappings": { "properties": { "price":{ "type": "integer" }, "color":{ "type": "keyword" }, "make":{原创 2021-12-31 23:32:17 · 1762 阅读 · 0 评论 -
深耕ElasticSearch - 条形图/按时间统计/范围限定的聚合
文章目录1. 数据准备2. 条形图3. 按时间统计3.1 按时间统计3.2 过滤掉空buckets3.3 指定时间区间3.4 ES 7.0版本的改变3.5 扩展例子4. 范围限定的聚合1. 数据准备1、创建索引映射mapping :PUT /cars { "mappings": { "properties": { "price":{ "type": "integer" }, "color":{ "type": "keyw原创 2021-12-29 01:00:55 · 1965 阅读 · 0 评论 -
深耕ElasticSearch - 尝试聚合
文章目录1. 高阶概念2. 尝试聚合3. 添加度量指标4. 嵌套桶5. 最后的修改1. 高阶概念桶(Buckets):满足特定条件的文档的集合指标(Metrics):对桶内的文档进行统计计算这就是全部了!每个聚合都是一个或者多个桶和零个或者多个指标的组合。翻译成粗略的SQL语句来解释吧:SELECT COUNT(color) // COUNT(color) 相当于指标FROM tableGROUP BY color // GROUP BY color 相当于桶。桶在概念上类似于原创 2021-12-28 01:05:12 · 1487 阅读 · 2 评论 -
深耕ElasticSearch - 近似匹配
文章目录1. 短语匹配2. 邻近查询3. 多值字段4. 越近越好5. 性能优化思考下面这几个句子的不同:Sue ate the alligator.The alligator ate Sue.Sue never goes anywhere without her alligator-skin purse.用 match 搜索 sue alligator 上面的三个文档都会得到匹配,但它却不能确定这两个词是否只来自于一种语境,甚至都不能确定是否来自于同一个段落。理解分词之间的关系是一个复杂的难原创 2021-12-24 01:08:39 · 1148 阅读 · 1 评论 -
深耕ElasticSearch - 基于cross_fields类型实现多字段查询
文章目录1. 跨字段实体搜索2. 字段中心式查询3. 自定义 _all 字段4. cross-fields 跨字段查询5. Exact-Value 精确值字段1. 跨字段实体搜索1.1 跨字段实体搜索跨字段实体搜索(cross-fields entity search),在如 person 、 product 或 address 这样的实体中,需要使用多个字段来唯一标识它的信息。比如一个人的标识是姓名,姓名可以散落在多个field中,比如first_name和last_name中。{ "f原创 2021-12-21 00:35:12 · 1286 阅读 · 0 评论