![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
elasticsearch
文章平均质量分 54
王大丫丫
少壮不努力,老大徒伤悲。
深度学习、人工智能、大模型、多模态
展开
-
elasticsearch 每次查询结果不一样
这种情况一般都是出现在集群中,目前已知会有两种可能:1.就是主副分片的数据不一致,es 查询默认情况下会随机选择分片或者其副本,所以导致同样的查询结果不一致。此情况产生的原因复杂,默认情况下,写入数据时,会先写入主分片,主分片成功后,再并发写入副本分片,当所有副本分片成功后,才会返回成功。所以要找出数据不一致的原因并解决,这种情况我没遇到过。2.我遇到的是第二种情况,因为我的集群中的两个节点的 ik 配置不一致导致了这种结果,所以要保证各节点的 es 和插件的配置一致。...原创 2021-03-03 13:59:48 · 2931 阅读 · 2 评论 -
Elasticsearch 7.3 之 CoordinationStateRejectedException
集群中的某一个数据节点关闭之后重启报出如下异常,但是没有影响正常的启动:Caused by: org.elasticsearch.cluster.coordination.CoordinationStateRejectedException: incoming term 19 does not match current term 20 at org.elasticsearch.cluster.coordination.CoordinationState.handleJoin(CoordinationS原创 2021-02-10 15:44:02 · 2212 阅读 · 2 评论 -
Elasticsearch 7.10 之 Asynchronous usage
跨不同客户端的所有方法都以传统的同步和异步变体形式存在。不同之处在于,异步请求使用 REST Low Level Client 中的异步请求。如果您正在执行多个请求或正在使用例如 rx java,Kotlin 协同例程或类似框架是有用的。可以通过以下事实来识别异步方法:它们的名称中带有单词 “Async” ,并返回一个 Cancellable 实例。异步方法接受与同步变量相同的请求对象,并接受通用 ActionListener ,其中 T 是同步方法的返回类型。所有异步方法都返回一个带有 Cancel原创 2021-02-08 11:40:43 · 172 阅读 · 1 评论 -
Elasticsearch 7.10 之 RequestOptions
RestHighLevelClient 中的所有 API 都接受一个 RequestOptions ,您可以使用它们以不会改变 Elasticsearch 执行请求的方式自定义请求。 例如,在这里您可以指定 NodeSelector 来控制哪个节点接收请求。有关自定义选项的更多示例,请参见 low level client documentation 。详情见官网:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/原创 2021-02-08 11:39:04 · 7115 阅读 · 3 评论 -
Elasticsearch 7.10 之 Initialization
RestHighLevelClient 实例需要 REST low-level client builder 按以下方式构建:RestHighLevelClient client = new RestHighLevelClient( RestClient.builder( new HttpHost("localhost", 9200, "http"), new HttpHost("localhost", 9201, "http原创 2021-02-08 11:38:34 · 241 阅读 · 1 评论 -
Elasticsearch 7.10 之 Dependencies
The High Level Java REST Client 依赖于以下工件及其传递依赖项:org.elasticsearch.client:elasticsearch-rest-clientorg.elasticsearch:elasticsearch详情见官网:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high-getting-started-dependencies.ht原创 2021-02-08 11:38:02 · 255 阅读 · 1 评论 -
Elasticsearch 7.10 之 Maven Repository
The high-level Java REST client 托管在 Maven Central 上,所需的最低 Java 版本是 1.8。The High Level REST Client 的发布周期与 Elasticsearch 相同。用所需的客户端版本替换该版本。如果您正在寻找 SNAPSHOT 版本,则应将我们的快照存储库添加到您的 Maven 配置中:<repositories> <repository> <id>es-snap原创 2021-02-08 11:37:31 · 1881 阅读 · 1 评论 -
Elasticsearch 7.10 之 Compatibility
The Java High Level REST Client 至少需要 Java 1.8,并依赖于 Elasticsearch 核心项目。客户端版本与为其开发客户端的 Elasticsearch 版本相同。它接受与 TransportClient 相同的请求参数,并返回相同的响应对象。如果需要将应用程序从 TransportClient 迁移到新的 REST 客户端,请参阅 Migration Guide 。确保高级客户端能够与在相同主要版本和较大或相等的次要版本上运行的任何 Elasticsearch原创 2021-02-08 11:36:58 · 202 阅读 · 1 评论 -
Elasticsearch 7.10 之 Java High Level REST Client
The Java High Level REST Client 在 Java Low Level REST client 之上工作。 它的主要目的是公开 API 特定的方法,这些方法接受请求对象作为参数并返回响应对象,以便由客户端本身来处理请求和响应。每个 API 可以同步或异步调用。 同步方法返回一个响应对象,而名称以 async 后缀结尾的异步方法则需要一个侦听器参数,一旦接收到响应或错误,该参数就会被通知(在低级客户端管理的线程池上)。Java High Level REST Client 取决于原创 2021-02-08 11:36:27 · 478 阅读 · 2 评论 -
Elasticsearch 7.10 之 Near real-time search
文档和索引的概述章节的内容表明,当文档存储在 Elasticsearch 中时,将在 1 秒内以几乎实时地可以对其进行索引和完全搜索。什么定义了近实时搜索?Lucene 是 Elasticsearch 所依仗的底层 Java 库,它引入了按段搜索的概念。段类似于倒排索引,但是 Lucene 中的索引一词的意思是“段的集合加上一个提交点“。提交后,将新段添加到提交点并清除缓冲区。文件系统缓存位于 Elasticsearch 和磁盘之间。内存中的索引缓冲区(图1)中的文档被写入新段(图2)。新段首先写入文件原创 2021-02-08 11:35:47 · 164 阅读 · 1 评论 -
Elasticsearch 7.10 之 Scripting
使用脚本,您可以在 Elasticsearch 中评估自定义表达式。例如,您可以使用脚本在搜索请求中返回“脚本字段”或评估查询的自定义分数。默认的脚本语言是 Painless 。其他 lang 插件使您可以运行以其他语言编写的脚本。在可以使用脚本的任何地方,都可以包含 lang 参数以指定脚本的语言。General-purpose languages这些语言可在脚本 API 中用于任何目的,并提供最大的灵活性。LanguageSandboxedRequired pluginpa原创 2021-02-08 11:35:15 · 223 阅读 · 1 评论 -
Elasticsearch 7.10 之 Suggesters
通过使用 suggester ,根据提供的文本来建议外观相似的字词。建议功能的某些部分仍在开发中。POST my-index-000001/_search{ "query" : { "match": { "message": "tring out Elasticsearch" } }, "suggest" : { "my-suggestion" : { "text" : "tring out Elasticsearch", "ter原创 2021-02-08 11:34:44 · 300 阅读 · 1 评论 -
Elasticsearch 7.10 之 Metrics Aggregations
此族中的聚合基于从要聚合的文档中以一种或另一种方式提取的值来计算指标。 这些值通常从文档的字段中提取(使用字段数据),但是也可以使用脚本生成。数值指标聚合是一种特殊类型的指标聚合,可输出数值。 一些聚合输出单个数字指标(例如 avg ),称为单值数字指标聚合,其他聚合生成多个指标(例如 stats ),并称为多值数字指标聚合。 当这些值充当某些桶聚合的直接子聚合(某些桶聚合使您可以基于每个桶中的数字度量对返回的桶进行排序)时,单值和多值数字度量聚合之间的区别将发挥作用。详情见官网:https://www原创 2021-02-04 11:02:37 · 168 阅读 · 1 评论 -
Elasticsearch 7.10 之 Bucket Aggregations
桶聚合不像度量聚合那样计算字段的度量,而是创建文档桶。每个桶都与一个标准(取决于聚合类型)相关联,该标准确定当前上下文中的文档是否“落入”其中。换句话说,桶有效地定义了文档集。除了桶本身之外,桶聚合还计算并返回“落入”每个存储桶的文档数量。与指标聚合相反,桶聚合可以保存子聚合。这些子聚合将针对其“父”存储桶聚合创建的桶进行聚合。有不同的桶聚合器,每个聚合器都有不同的“桶”策略。一些定义单个桶,一些定义固定数量的多个桶,另一些定义在聚合过程中动态创建桶。单个响应中允许的最大桶数受到名为 search.m原创 2021-02-04 11:01:54 · 595 阅读 · 1 评论 -
Elasticsearch 7.10 之 Aggregations
汇总会将您的数据汇总为指标、统计信息或其他分析结果。 汇总可帮助您回答以下问题:我的网站平均加载时间是多少?根据交易量,谁是我最有价值的客户?什么会被视为我网络上的大文件?每个产品类别中有多少个产品?Elasticsearch 将聚合分为三类:Metric aggregations:从字段值计算指标(例如总和或平均值)的指标聚合。Bucket aggregations:桶聚合,根据字段值、范围或其他条件将文档分组为桶(也称为箱)。Pipeline aggregations:管道聚合从其原创 2021-02-04 11:01:21 · 627 阅读 · 1 评论 -
Elasticsearch 7.10 之 Index management
Kibana 的 Index Management 功能是管理集群的索引、数据流和索引模板的简便方法。练习良好的索引管理可确保您的数据以尽可能最具成本效益的方式正确存储。What you’ll learn您将学习如何:查看和编辑索引设置。查看索引的映射和统计信息。执行索引级操作,例如刷新和冻结。查看和管理数据流。创建索引模板以自动配置新的数据流和索引。Required permissions如果使用 Elasticsearch 安全功能,则需要以下安全特权:monitor 集群特权原创 2021-02-04 11:00:50 · 2216 阅读 · 1 评论 -
Elasticsearch 7.10 之 Data tiers
数据层是具有相同数据角色的节点的集合,这些节点通常共享相同的硬件配置文件:内容层节点:处理诸如产品目录之类的内容的索引和查询负载。热层节点:处理诸如日志或指标之类的时间序列数据的索引负载,并保存您最近,最常访问的数据。暖层节点:保存的时间序列数据访问频率较低,并且很少需要更新。冷层节点:保存时间序列数据,这些数据偶尔会被访问,并且通常不会更新。当您将文档直接索引到特定索引时,它们会无限期地保留在内容层节点上。当您将文档索引到数据流时,它们最初位于热层节点上。您可以配置索引生命周期管理(ILM原创 2021-02-04 11:00:17 · 927 阅读 · 1 评论 -
Elasticsearch 7.10 之 Data management
您存储在 Elasticsearch 中的数据通常属于两类之一:内容:您要搜索的项目的集合,例如产品目录时间序列数据:连续生成带有时间戳的数据流,例如日志条目内容可能会经常更新,但是内容的价值会随着时间的推移保持相对恒定。您希望能够快速检索项目,无论它们有多老。时间序列数据会随着时间的推移不断累积,因此您需要一些策略来平衡数据的价值和存储数据的成本。随着时间的流逝,它变得越来越不重要,访问频率也越来越低,因此您可以将其移至价格较低,性能较低的硬件上。对于最早的数据,重要的是您可以访问该数据。如果原创 2021-02-04 10:59:47 · 226 阅读 · 1 评论 -
Elasticsearch 7.10 之 Restore a cluster’s data
您可以将快照还原到正在运行的集群,该集群默认情况下包括快照中的所有数据流和索引。 但是,您可以选择仅从快照还原集群状态或特定的数据流或索引。如果您的集群启用了 Elasticsearch 安全功能,则还原 API 需要 manage 集群特权。还原过程没有定制角色。此特权是非常纵容的,并且仅应授予“管理员”类别中的用户。具体来说,它允许恶意用户将数据泄露到他们选择的位置。自动化工具不应被具有此特权的用户身份运行。详情见官网:https://www.elastic.co/guide/en/elastics原创 2021-02-04 10:59:13 · 171 阅读 · 1 评论 -
Elasticsearch 7.10 之 Restore a cluster’s security configuration
只有在 .security 索引的快照是在同一主要版本的先前次要版本中创建的,才可以还原该快照。每个主要版本的最后一个次要版本都可以转换和读取其主要版本和下一个索引的格式。还原安全配置时,可以选择完全还原所有配置(包括非安全配置),也可以只还原 .security 索引的内容。如备份基于索引的安全性配置中所述,第二个选项仅包含资源类型的配置。第一种选择的优点是可以从过去的时间点将集群还原到明确定义的状态。第二个选项仅涉及安全性配置资源,但不能完全还原安全性功能。要从备份还原安全配置,请首先确保已安装包含原创 2021-02-04 10:58:49 · 240 阅读 · 1 评论 -
Elasticsearch 7.10 之 Back up a cluster’s security configuration
安全配置信息位于两个位置:files 和 indices。Back up file-based security configurationElasticsearch 安全功能是使用 elasticsearch.yml 和 elasticsearch.keystore 文件中的 xpack.security 命名空间配置的。此外,在同一 ES_PATH_CONF 目录中还有其他几个其他配置文件。这些文件定义角色和角色映射并配置文件领域。一些设置指定了对安全敏感的数据的文件路径,例如用于 HTTP 客户端原创 2021-02-04 10:55:28 · 165 阅读 · 1 评论 -
Elasticsearch 7.10 之 Back up a cluster’s configuration
除了备份集群中的数据外,备份其配置也很重要,特别是在集群变大且难以重构时。配置信息驻留在每个集群节点上的常规文本文件中。在二进制安全容器 elasticsearch.keystore 文件中指定了敏感设置值,例如 Watcher 通知服务器的密码;某些设置值是指向相关配置数据的文件路径,例如摄取 geo ip 数据库。所有这些文件都包含在 ES_PATH_CONF 目录中。对配置文件的所有更改都是通过手动编辑文件或使用命令行实用程序完成的,而不是通过 API 。实际上,这些更改在初始设置后很少发生。我原创 2021-02-04 10:55:01 · 122 阅读 · 1 评论 -
Elasticsearch 7.3 之 搭建三节点集群、安装 kibana 和 head 插件
安装 es 节点准备:jdk1.8 安装包、es 7.3 安装包、kibana 7.3 安装包、ik、pinyin、elasticsearch-head 插件等假设有三个节点的 host 分别为 :100.100.100.61、100.100.100.65、100.100.100.66在 100.100.100.66 服务器上面安装 java 1.8 ,并在 /etc/profile 文件最后加入下面配置,保存后执行 source /etc/profile 生效,并查看 java -version原创 2021-02-03 17:10:08 · 391 阅读 · 1 评论 -
Elasticsearch 7.10 之 Back up a cluster’s data
要备份集群的数据,可以使用 snapshot API 。快照是从正在运行的 Elasticsearch 集群中获取的备份。您可以对整个集群进行快照,包括其所有数据流和索引。您还可以仅对集群中的特定数据流或索引进行快照。必须先 register a snapshot repository ,然后才能 create snapshots。快照可以存储在本地或远程存储库中。远程存储库可以驻留在 Amazon S3,HDFS,Microsoft Azure,Google Cloud Storage 和存储库插件原创 2021-02-01 10:23:20 · 118 阅读 · 1 评论 -
Elasticsearch 7.10 之 Back up a cluster
您不能仅通过复制其所有节点的数据目录来备份 Elasticsearch 集群。 Elasticsearch 可能正在运行时对其数据目录的内容进行更改;复制其数据目录不能期望捕获其内容的一致。如果尝试从此类备份还原群集,则该群集可能会失败并报告损坏和/或丢失文件。另外,它或许成功了,但它默默地丢失了一些数据。备份集群的唯一可靠方法是使用快照和还原功能。要为您的群集进行完整备份:备份资料备份集群配置备份安全配置要从备份还原群集:恢复数据恢复安全配置详情见官网:https://www.el原创 2021-02-01 10:22:39 · 113 阅读 · 1 评论 -
Elasticsearch 7.10 之 Resilience in small clusters
在较小的集群中,最重要的是要能够抵抗单节点故障。本节提供一些指导,使集群对单个节点的故障尽可能地具有弹性。One-node clusters如果您的集群由一个节点组成,则该单个节点必须执行所有操作。为了适应这一点,Elasticsearch 默认为节点分配每个角色。单节点集群没有弹性。如果节点发生故障,集群将停止工作。由于一个节点集群中没有副本,因此无法冗余存储数据。但是,默认情况下,绿色集群运行状况至少需要一个副本。为确保您的集群可以报告 green cluster health status ,请原创 2021-02-01 10:22:08 · 149 阅读 · 2 评论 -
Elasticsearch 7.10 之 Designing for resilience
诸如 Elasticsearch 之类的分布式系统,旨在即使它们的某些组件出现故障也可以继续工作。只要有足够的连接良好的节点来接管其职责,如果 Elasticsearch 群集的某些节点不可用或已断开连接,它们就可以继续正常运行。弹性群集的大小有一个限制。所有 Elasticsearch 集群都需要:一个选出的 master node 节点每个 role 至少有一个节点。每个 shard 至少有一个副本。弹性集群需要每个所需集群组件的冗余。这意味着弹性群集必须具有:至少三个主节点每个角原创 2021-02-01 10:21:40 · 116 阅读 · 1 评论 -
Elasticsearch 7.10 之 Set up a cluster for high availability
您的数据对您很重要。确保其安全和可用对 Elasticsearch 很重要。有时,您的群集可能会遇到硬件故障或断电。为了帮助您 Elasticsearch 提供了许多功能,即使出现故障也可以实现高可用性。通过适当的计划,可以设计集群有弹性以应对许多常见问题,例如单个节点的丢失或网络连接丢失,甚至区域范围内的断电(例如断电)。您可以使用 cross-cluster replication 将数据复制到远程跟随者集群,该跟随者集群可能与领导者集群位于不同的数据中心,甚至位于不同的大陆。跟随者群集充当热备用原创 2021-02-01 10:21:02 · 135 阅读 · 1 评论 -
Elasticsearch 7.10 之 Search shard routing
为了防止硬件故障并提高搜索容量,Elasticsearch 可以跨多个节点上的多个分片存储索引数据的副本。运行搜索请求时,Elasticsearch 选择一个包含索引数据副本的节点,并将搜索请求转发到该节点的分片。此过程称为搜索分片路由或路由。Adaptive replica selection默认情况下,Elasticsearch 使用自适应副本选择来路由搜索请求。此方法使用分片分配意识和以下条件选择合格的节点:协调节点与合格节点之间的先前请求的响应时间合格节点运行先前的搜索所花费的时间合格节原创 2021-02-01 10:20:27 · 725 阅读 · 1 评论 -
Elasticsearch 7.10 之 Search multiple data streams and indices
要搜索多个数据流和索引,请将其作为逗号分隔的值添加到搜索 API 的请求路径中。以下请求搜索 my-index-000001 和 my-index-000002 索引。GET /my-index-000001,my-index-000002/_search{ "query": { "match": { "user.id": "kimchy" } }}您还可以使用索引模式搜索多个数据流和索引。以下请求针对 my-index-* 索引模式。该请求将搜索群集中以原创 2021-02-01 10:19:57 · 232 阅读 · 1 评论 -
Elasticsearch 7.10 之 Retrieve selected fields from a search
默认情况下,搜索响应中的每个命中结果都包含文档 _source ,这是在为文档建立索引时提供的整个 JSON 对象。要检索搜索响应中的特定字段,可以使用 fields 参数:POST my-index-000001/_search{ "query": { "match": { "message": "foo" } }, "fields": ["user.id", "@timestamp"], "_source": false}fields 参数同时查阅文原创 2021-02-01 10:14:02 · 399 阅读 · 1 评论 -
Elasticsearch 7.10 之 Retrieve inner hits
parent-join 和 nested 功能允许返回在不同范围的匹配文档。在父/子情况下,根据子文档中的匹配返回父文档,或者根据父文档中的匹配返回子文档。在嵌套的情况下,将根据嵌套内部对象中的匹配返回文档。在这两种情况下,不同范围中的实际匹配项导致将要返回的文档被隐藏。在许多情况下,了解哪些内部嵌套对象(对于嵌套的情况)或子/父文档(对于父/子的情况)导致某些信息返回非常有用。内部命中功能可用于此目的。此功能在搜索响应中为每个搜索命中返回附加的嵌套命中,这些嵌套命中导致搜索命中匹配在不同范围内。可以通原创 2021-02-01 10:13:32 · 434 阅读 · 1 评论 -
Elasticsearch 7.10 之 Filter search results
您可以使用两种方法来过滤搜索结果:将布尔查询与 filter 子句一起使用。搜索请求将布尔过滤器应用于搜索结果和汇总。使用搜索 API 的 post_filter 参数。搜索请求仅将 post filters 应用于搜索命中,而不应用于汇总。您可以使用 post filter 根据更广泛的结果集计算聚合,然后进一步缩小结果范围。您还可以在 post filter 之后 rescore ,以提高相关性和重新排序结果。Post filter使用 post_filter 参数过滤搜索结果时,将在计算原创 2021-02-01 10:13:01 · 1048 阅读 · 1 评论 -
Elasticsearch 7.10 之 Paginate search results
默认情况下,搜索会返回前 10 个匹配的匹配项。要浏览更大的一组结果,可以使用 search API 的 from 和 size 参数。 from 参数定义要跳过的匹配数,默认为 0 。size 参数是要返回的最大匹配数。这两个参数共同定义了结果页面。GET /_search{ "from": 5, "size": 20, "query": { "match": { "user.id": "kimchy" } }}避免过度使用 from 和 size 来原创 2021-01-29 14:59:41 · 780 阅读 · 1 评论 -
Elasticsearch 7.10 之 Near real-time search
文档和索引的概述章节的内容表明,当文档存储在 Elasticsearch 中时,将在 1 秒内以几乎实时地可以对其进行索引和完全搜索。什么定义了近实时搜索?Lucene 是 Elasticsearch 所依仗的底层 Java 库,它引入了按段搜索的概念。段类似于倒排索引,但是 Lucene 中的索引一词的意思是“段的集合加上一个提交点“。提交后,将新段添加到提交点并清除缓冲区。文件系统缓存位于 Elasticsearch 和磁盘之间。内存中的索引缓冲区(图1)中的文档被写入新段(图2)。新段首先写入文件原创 2021-01-29 14:58:57 · 259 阅读 · 1 评论 -
Elasticsearch 7.10 之 Long-running searches
Elasticsearch 通常允许您快速搜索大量数据。 在某些情况下,搜索可能在许多分片上执行,可能针对冻结的索引并跨越多个远程群集,因此预期结果不会在毫秒内返回。 当您需要执行长时间运行的搜索时,同步等待返回结果是不理想的。 相反,异步搜索使您可以提交异步执行的搜索请求,监视请求的进度并在以后的阶段检索结果。 您也可以在部分结果可用时但在搜索完成之前检索它们。您可以使用提交异步搜索 API 提交异步搜索请求。 使用 get async search API ,您可以监视异步搜索请求的进度并检索其结果。原创 2021-01-29 14:57:17 · 172 阅读 · 1 评论 -
Elasticsearch 7.10 之 Collapse search results
您可以使用 collapse 参数根据字段值折叠搜索结果。折叠是通过每个折叠键仅选择排序最靠前的文档来完成的。例如,以下搜索按 user.id 折叠结果,并按 http.response.bytes 对其进行排序。GET /my-index-000001/_search{ "query": { "match": { "message": "GET /search" } }, "collapse": { "field": "user.id" # 使用原创 2021-01-29 14:56:45 · 1275 阅读 · 2 评论 -
Elasticsearch 7.10 之 Search your data
搜索查询是对 Elasticsearch 数据流或索引中的数据信息的请求。您可以将查询视为一个问题,以 Elasticsearch 理解的方式编写。根据您的数据,您可以使用查询来获取问题的答案,例如:服务器上的哪些进程需要超过 500 毫秒的响应时间?过去一周内,我网络上的哪些用户运行了 regsvr32.exe ?我网站上的哪些页面包含特定的单词或短语?搜索包含一个或多个查询,这些查询被组合并发送到 Elasticsearch 。与搜索查询匹配的文档会在响应的匹配数或搜索结果中返回。搜索还原创 2021-01-29 14:56:17 · 491 阅读 · 3 评论 -
Elasticsearch 7.10 之 Text analysis
文本分析是将非结构化文本(例如电子邮件的正文或产品说明)转换为针对搜索优化的结构化格式的过程。When to configure text analysis当索引或搜索 text 字段时,Elasticsearch 执行文本分析。如果您的索引不包含文本字段,则无需进一步设置; 您可以跳过本节中的页面。但是,如果您使用 text 字段或文本搜索未返回预期的结果,则配置文本分析通常会有所帮助。 如果您要使用 Elasticsearch 执行以下操作,则还应研究分析配置:建立一个搜索引擎挖掘非结构化原创 2021-01-29 14:55:44 · 249 阅读 · 1 评论 -
Elasticsearch 7.10 之 Anatomy of an analyzer
分析器(无论是内置的还是自定义的)只是一个包,其中包含三个较低级别的构建块:character filters , tokenizers and token filters 。内置的分析器将这些构件预先打包到适合于不同语言和文本类型的分析器中。 Elasticsearch 还公开了各个构建基块,以便可以将其组合以定义新的自定义分析器。Character filters字符过滤器将原始文本作为字符流接收,并且可以通过添加,删除或更改字符来转换流。例如,可以使用字符过滤器将印度-阿拉伯数字 (٠١٢٣٤原创 2021-01-29 14:55:11 · 171 阅读 · 1 评论