# Highlighting
原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-highlighting.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-highlighting.html)
译文链接 : [http://www.apache.wiki/pages/editpage.action?pageId=4883096](http://www.apache.wiki/pages/editpage.action?pageId=488308)
贡献者 : [ping](/display/~wangyangting)
允许突出显示一个或多个字段的搜索结果。 实现使用 lucene 普通荧光笔,快速向量荧光笔(fvh)或 postings 荧光笔。 以下是一个搜索请求正文的示例:
```
GET /_search
{
"query" : {
"match": { "user": "kimchy" }
},
"highlight" : {
"fields" : {
"content" : {}
}
}
}
```
在上述情况下,内容字段将为每个搜索命中突出显示(每个搜索命中内将有另一个元素,称为突出显示,其中包括突出显示的字段和突出显示的片段)。
Note:
为了执行突出显示,需要字段的实际内容。 如果有问题的字段被存储(在映射中存储设置为 true),它将被使用,否则,实际的 _source 将被加载,并且相关字段将从中提取。
_all 字段不能从 _source 中提取,因此它只能用于突出显示,如果它映射到将 store 设置为 true。
字段名称支持通配符符号。 例如,使用 comment_ * 将导致所有与表达式匹配的文本和关键字字段(以及 5.0 之前的字符串)被突出显示。 请注意,所有其他字段将不会突出显示。 如果您使用自定义映射器并要在字段上突出显示,则必须显式提供字段名称。
### Plain highlighter
荧光笔的默认选择是普通类型,并使用Lucene荧光笔。 它试图在理解词重要性和短语查询中的任何词定位标准方面反映查询匹配逻辑。
warning:
如果你想突出很多文档中的大量字段与复杂的查询,这个荧光笔不会快。 在努力准确地反映查询逻辑,它创建一个微小的内存索引,并通过 Lucene 的查询执行计划程序重新运行原始查询条件,以获取当前文档的低级别匹配信息。 这对于每个字段和需要突出显示的每个文档重复。 如果这在您的系统中出现性能问题,请考虑使用替代荧光笔。
### Postings highlighter
如果 index_options 设置为映射中的偏移,则将使用 postings highlighter 而不是纯色荧光笔。 帖子荧光笔:
* 速度更快,因为它不需要重新分析要突出显示的文本:文档越大,性能增益越好
* 比快速向量荧光笔所需的 term_vectors 需要更少的磁盘空间
* 将文本分成句子并突出显示。 非常适合自然语言,而不是与包含例如 html 标记的字段
* 将文档视为整个语料库,并使用 BM25 算法对单个句子进行评分,如同它们是该语料库中的文档
以下是一个在索引映射中设置内容字段的示例,以允许使用其上的 postings highlighter 来突出显示:
```
{
"type_name" : {
"content" : {"index_options" : "offsets"}
}
}
```
Note:
请注意,postings highlighter 指的是执行简单的查询术语突出显示,而不考虑其位置。 这意味着,当与短语查询结合使用时,它将突出显示查询所构成的所有术语,而不管它们是否实际上是查询匹配的一部分,从而有效地忽略了它们的位置。
Warning:
postings highlighter 不支持突出显示一些复杂的查询,例如类型设置为match_phrase_prefix的匹配查询。 在这种情况下,不会返回高亮显示的片段。
### Fast vector highlighter
如果通过在映射中将 term_vector 设置为 with_positions_offsets 来提供 term_vector 信息,则将使用快速向量荧光笔而不是普通荧光笔。 快速矢量荧光笔:
* 是更快,特别是对于大字段(> 1MB)
* 可以使用 boundary_chars,boundary_max_scan 和 fragment_offset 进行定制(见下文)
* 需要将 term_vector 设置为 with_positions_offsets,这会增加索引的大小
* 可以将多个字段的匹配合并为一个结果。请参阅 matched_fields
* 可以为不同位置的匹配分配不同的权重,以便在突出显示促销词组匹配的 Boosting Query 时,可以将词组匹配排在匹配项上
下面是一个设置内容字段以允许使用快速向量荧光笔突出显示的示例(这将导致索引更大):
```
{
"type_name" : {
"content" : {"term_vector" : "with_positions_offsets"}
}
}
```
### Force highlighter type
类型字段允许强制特定的荧光笔类型。 这对于需要在启用 term_vectors 的字段上使用纯色荧光笔时非常有用。 允许的值是:plain,postings 和 fvh。 以下是强制使用纯荧光笔的示例:
```
GET /_search
{
"query" : {
"match": { "user": "kimchy" }
},
"highlight" : {
"fields" : {
"content" : {"type" : "plain"}
}
}
}
```
### Force highlighting on source
强制高亮显示源上的高亮显示字段,即使字段单独存储。 默认为 false。
```
GET /_search
{
"query" : {
"match": { "user": "kimchy" }
},
"highlight" : {
"fields" : {
"content" : {"force_source" : true}
}
}
}
```
### Highlighting Tags
```
GET /_search
{
"query" : {
"match": { "user": "kimchy" }
},
"highlight" : {
"pre_tags" : ["<tag1>"],
"post_tags" : ["</tag1>"],
"fields" : {
"_all" : {}
}
}
}
```
使用快速向量荧光笔可以有更多的标签,“重要性”是有序的。
```
GET /_search
{
"query" : {
"match": { "user": "kimchy" }
},
"highlight" : {
"pre_tags" : ["<tag1>", "<tag2>"],
"post_tags" : ["</tag1>", "</tag2>"],
"fields" : {
"_all" : {}
}
}
}
```
还有内置的“标签”模式,当前有一个模式称为样式与以下 pre_tags:
```
<em class="hlt1">, <em class="hlt2">, <em class="hlt3">,
<em class="hlt4">, <em class="hlt5">, <em class="hlt6">,
<em class="hlt7">, <em class="hlt8">, <em class="hlt9">,
<em class="hlt10">
```
和 </ em> 作为 post_tags。 如果你认为更好的内置标签模式,只是发送电子邮件到邮件列表或打开一个问题。 以下是切换标记模式的示例:
```
GET /_search
{
"query" : {
"match": { "user": "kimchy" }
},
"highlight" : {
"tags_schema" : "styled",
"fields" : {
"content" : {}
}
}
}
```
### Encoder
编码器参数可用于定义高亮显示的文本的编码方式。 它可以是默认(无编码)或 html(将转义 html,如果你使用 html 突出显示标签)。
### Highlighted Fragments
每个高亮显示的字段可以控制高亮的片段的大小(以字符为单位)(默认值为 100 ),以及要返回的最大片段数(默认值为 5 )。例如:
```
GET /_search
{
"query" : {
"match": { "user": "kimchy" }
},
"highlight" : {
"fields" : {
"content" : {"fragment_size" : 150, "number_of_fragments" : 3}
}
}
}
```
当使用 postings highlighter 时,fragment_size 被忽略,因为它输出句子不考虑它们的长度。
除此之外,还可以指定高亮显示的片段需要按照分数排序:
```
GET /_search
{
"query" : {
"match": { "user": "kimchy" }
},
"highlight" : {
"order" : "score",
"fields" : {
"content" : {"fragment_size" : 150, "number_of_fragments" : 3}
}
}
}
```
如果 number_of_fragments 值设置为 0,则不会生成片段,而是返回字段的整个内容,当然它会突出显示。如果短文本(例如文档标题或地址)需要高亮显示,但不需要分段,这可能非常方便。请注意,在这种情况下会忽略 fragment_size。
```
GET /_search
{
"query" : {
"match": { "user": "kimchy" }
},
"highlight" : {
"fields" : {
"_all" : {},
"bio.title" : {"number_of_fragments" : 0}
}
}
}
```
当使用 fvh 时,可以使用 fragment_offset 参数来控制从开始突出显示的边距。
在没有匹配的片段高亮的情况下,默认是不返回任何东西。相反,我们可以通过将 no_match_size(默认为 0 )设置为要返回的文本的长度,从字段的开头返回一段文本。实际长度可能比指定的短,因为它试图在单词边界上断开。当使用 postings 荧光笔时,不可能控制片段的实际大小,因此当 no_match_size 大于 0 时,第一个句子返回。
```
GET /_search
{
"query" : {
"match": { "user": "kimchy" }
},
"highlight" : {
"fields" : {
"content" : {
"fragment_size" : 150,
"number_of_fragments" : 3,
"no_match_size": 150
}
}
}
}
```
### Highlight query
也可以通过设置 highlight_query 来高亮显示搜索查询之外的查询。 如果使用 rescore 查询,这是特别有用的,因为这些查询在默认情况下不会通过高亮显示来考虑。 Elasticsearch 不会验证 highlight_query 以任何方式包含搜索查询,因此可以定义它,因此合法的查询结果根本不会突出显示。 通常最好在 highlight_query 中包含搜索查询。 下面是在 highlight_query 中包含搜索查询和 rescore 查询的示例。
```
GET /_search
{
"stored_fields": [ "_id" ],
"query" : {
"match": {
"content": {
"query": "foo bar"
}
}
},
"rescore": {
"window_size": 50,
"query": {
"rescore_query" : {
"match_phrase": {
"content": {
"query": "foo bar",
"slop": 1
}
}
},
"rescore_query_weight" : 10
}
},
"highlight" : {
"order" : "score",
"fields" : {
"content" : {
"fragment_size" : 150,
"number_of_fragments" : 3,
"highlight_query": {
"bool": {
"must": {
"match": {
"content": {
"query": "foo bar"
}
}
},
"should": {
"match_phrase": {
"content": {
"query": "foo bar",
"slop": 1,
"boost": 10.0
}
}
},
"minimum_should_match": 0
}
}
}
}
}
}
```
注意,在这种情况下,文本片段的分数是由 Lucene 高亮显示框架计算的。 对于实现细节,您可以检查 ScoreOrderFragmentsBuilder.java 类。 另一方面,当使用过帐突出显示器时,如上所述,使用 **BM25** 算法对分段进行打分。
### Global Settings
高亮设置可以在全局级别设置,然后在字段级别覆盖。
```
GET /_search
{
"query" : {
"match": { "user": "kimchy" }
},
"highlight" : {
"number_of_fragments" : 3,
"fragment_size" : 150,
"fields" : {
"_all" : { "pre_tags" : ["<em>"], "post_tags" : ["</em>"] },
"bio.title" : { "number_of_fragments" : 0 },
"bio.author" : { "number_of_fragments" : 0 },
"bio.content" : { "number_of_fragments" : 5, "order" : "score" }
}
}
}
```
### Require Field Match
require_field_match 可以设置为 false,这将导致任何字段被高亮显示,而不管查询是否与它们具体匹配。 默认行为是 true,这意味着只有包含查询匹配的字段才会高亮显示。
```
GET /_search
{
"query" : {
"match": { "user": "kimchy" }
},
"highlight" : {
"require_field_match": false,
"fields": {
"_all" : { "pre_tags" : ["<em>"], "post_tags" : ["</em>"] }
}
}
}
```
### Boundary Characters
当使用快速向量荧光笔高亮显示字段时,可以配置 boundary_chars 以定义什么构成用于高亮显示的边界。 它是一个单字符串,其中定义了每个边界字符。 它默认为。,!? \ t \ n。
boundary_max_scan 允许控制查找边界字符的距离,默认值为 20。
### Matched Fields
快速矢量荧光笔可以组合多个字段上的匹配,以使用 matched_fields 突出显示单个字段。 这对于以不同方式分析相同字符串的多字段来说是最直观的。 所有 matched_fields 必须将 term_vector 设置为with_positions_offsets,但只会加载匹配的组合字段,因此只有该字段可以从 store 设置为 yes 时受益。
在下面的示例中,content 由英语分析器分析,content.plain 由标准分析器分析。
```
GET /_search
{
"query": {
"query_string": {
"query": "content.plain:running scissors",
"fields": ["content"]
}
},
"highlight": {
"order": "score",
"fields": {
"content": {
"matched_fields": ["content", "content.plain"],
"type" : "fvh"
}
}
}
}
```
以上匹配 “run with scissors” 和 “running with scissors”,并高亮显示 “running” 和 “scissors”,但不是 “run”。 如果两个短语出现在一个大的文档中,则 “running with scissors” 在片段列表中的 “run with scissors” 上排序,因为该片段中有更多匹配项。
```
GET /_search
{
"query": {
"query_string": {
"query": "running scissors",
"fields": ["content", "content.plain^10"]
}
},
"highlight": {
"order": "score",
"fields": {
"content": {
"matched_fields": ["content", "content.plain"],
"type" : "fvh"
}
}
}
}
```
The above highlights "run" as well as "running" and "scissors" but still sorts "running with scissors" above "run with scissors" because the plain match ("running") is boosted.
上面高亮了 "run" 以及 "running" 和 "scissors",但仍然排序 “"running with scissors" 上面 "run with scissors",因为 plain match ("running") 提高。
```
GET /_search
{
"query": {
"query_string": {
"query": "running scissors",
"fields": ["content", "content.plain^10"]
}
},
"highlight": {
"order": "score",
"fields": {
"content": {
"matched_fields": ["content.plain"],
"type" : "fvh"
}
}
}
}
```
上面的查询不会突出显示 "run" 或 "scissor",但显示没有列出在匹配字段中匹配匹配的字段(内容)。
Note:
从技术上讲,也可以将字段添加到与共同匹配的字段不共享相同底层字符串的 matched_fields。 结果可能没有什么意义,如果一个匹配是在文本的末尾,那么整个查询将失败。
Note:
将 matching_fields 设置为非空数组时涉及少量开销,因此始终优选
```
"highlight": {
"fields": {
"content": {}
}
}
```
较于
```
"highlight": {
"fields": {
"content": {
"matched_fields": ["content"],
"type" : "fvh"
}
}
}
```
。
### Phrase Limit
快速向量荧光笔有一个 phrase_limit 参数,阻止它分析太多的短语和吃大量的内存。 它默认为 256,所以只有文档中前 256 个匹配的短语被考虑。 您可以使用 phrase_limit 参数提高限制,但请记住,评分更多的短语会消耗更多的时间和内存。
如果使用 matched_fields,请记住每个匹配字段的 phrase_limit 短语会被考虑。
### Field Highlight Order
Elasticsearch 按照它们发送的顺序高亮显示字段。 每个 json spec 对象是无序的,但如果你需要明确的字段的高亮显示的顺序,你可以使用数组的字段,如:
```
"highlight": {
"fields": [
{"title":{ /*params*/ }},
{"text":{ /*params*/ }}
]
}
```
没有一个内置于 Elasticsearch 的荧光笔关心字段高亮显示的顺序,但插件可能。
- Getting Started(入门指南)
- Basic Concepts(基础概念)
- Installation(安装)
- Exploring Your Cluster(探索集群)
- Cluster Health(集群健康)
- List All Indices(列出所有索引)
- Create an Index(创建索引)
- Index and Query a Document(索引和查询文档)
- Delete an Index(删除索引)
- Modifying Your Data(修改数据)
- Updating Documents(更新文档)
- Deleting Documents(删除文档)
- Batch Processing(批处理)
- Exploring Your Data(探索数据)
- The Search API(搜索 API)
- Introducing the Query Language(介绍查询语言)
- Executing Searches(执行查询)
- Executing Filters(执行过滤)
- Executing Aggregations(执行聚合)
- Conclusion(总结)
- Setup Elasticsearch(设置)
- Installing Elasticsearch(安装)
- zip 或 tar.gz 安装
- Debian软件包安装Elasticsearch
- 用RPM安装Elasticsearch
- Windows 环境下安装ES
- Docker 方式安装
- 配置Elasticsearch
- 重要Elasticsearch配置
- 安全配置
- 启动前检查
- 堆大小检查
- 文件描述符检查
- 内存锁定检查
- 最大线程数检查
- 最大虚拟内存检查
- 最大map数检查
- JVM Client模式检查
- 串行收集使用检查
- 系统调用过滤检查
- OnError与OnOutOfMemoryError检查
- G1GC检查
- 重要的系统配置
- 系统设置
- 在jvm.options中设置JVM堆大小
- 禁用swapping
- 文件描述符
- 虚拟内存
- 线程数
- 升级Elasticsearch
- Elasticsearch停机
- 重大改变
- 在5.3 重大改变
- 在5.2 重大改变
- Shadow Replicas已被弃用
- 在5.1 重大改变
- 在5.0 重大改变
- 搜索和查询DSL改变
- 映射改变
- 过滤器改变
- Suggester变化
- 索引API改变
- 文档API改变
- 设置的改变
- 分配改变
- HTTP改变
- REST API改变
- CAT API改变
- Java API改变
- Packaging
- Plugin改变
- 文件系统相关改变
- 磁盘上数据的路径
- 聚合改变
- 脚本相关改变
- API 规范
- Multiple Indices(多个索引)
- Date math support in index names(索引名称对 Date 和 Math 的支持)
- 常见选项
- URL-based access control(基于 URL 的访问控制)
- Document APIS
- Index API
- Get API
- Update API
- 通过查询 API 更新
- 多个 GET API
- Bulk API
- Reading and Writing documents(读写文档)
- Delete API
- Delete By Query API
- Reindex API
- Term Vectors
- Multi termvectors API
- ?refresh
- Search APIs
- Search
- URI Search
- Request Body Search
- Query
- From / Size
- Sort
- Source filtering
- Fields
- Script Fields
- Doc value Fields
- Post filter
- Highlighting
- Rescoring
- Search Type
- Scroll
- Preference
- Explain
- Version
- Index Boost
- min_score
- Named Queries
- Inner hits
- Search After
- Field Collapsing 字段折叠
- Search 模板
- Multi Search 模板
- Search Shards API
- Suggesters
- Completion Suggester
- Context Suggester
- Phrase Suggester
- Term suggester
- Multi Search API
- Count API
- Validate API
- Explain API
- Profile API
- Profiling Queries
- Profiling Aggregations
- Profiling Considerations
- Aggregations
- Metric Aggregations
- 值计数聚合(Value Count Aggregation)
- 地理边界聚合
- 地理重心聚合
- 基数聚合
- 平均值聚合
- 扩展统计聚合
- 最大值聚合
- 最小值聚合
- Bucket Aggregations
- Children Aggregation
- Date Histogram Aggregation
- Date Range Aggregation
- Diversified Sampler Aggregation
- Filter Aggregation(过滤器聚合)
- Filters Aggregation
- Geo Distance Aggregation(地理距离聚合)
- GeoHash grid Aggregation(GeoHash网格聚合)
- Global Aggregation(全局聚合)
- Histogram Aggregation
- IP Range Aggregation(IP范围聚合)
- Missing Aggregation
- Nested Aggregation(嵌套聚合)
- Range Aggregation(范围聚合)
- Reverse nested Aggregation
- Sampler Aggregation
- Significant Terms Aggregation
- 邻接矩阵聚合
- Pipeline Aggregations
- Avg Bucket Aggregation
- Derivative Aggregation(导数聚合)
- Max Bucket Aggregation
- Min Bucket Aggregation
- Sum Bucket Aggregation
- Stats Bucket Aggregation
- Extended Stats Bucket Aggregation(扩展信息桶聚合)
- Percentiles Bucket Aggregation(百分数桶聚合)
- Cumulative Sum Aggregation(累积汇总聚合)
- Bucket Script Aggregation(桶脚本聚合)
- Bucket Selector Aggregation(桶选择器聚合)
- Serial Differencing Aggregation(串行差异聚合)
- Matrix Aggregations
- Matrix Stats
- Matrix Stats(矩阵统计)
- Caching heavy aggregations(缓存频繁聚合)
- Returning only aggregation results(仅返回需要聚合的结果)
- Aggregation Metadata(聚合元数据)
- Returning the type of the aggregation(返回聚合的类型)
- 索引 API
- Create Index /创建索引
- Delete Index /删除索引
- Get Index /获取索引
- Indices Exists /索引存在
- Open / Close Index API /启动关闭索引
- Shrink Index /缩小索引
- Rollover Index/滚动索引
- Put Mapping /提交映射
- Get Mapping /获取映射
- Get Field Mapping /获取字段映射
- 卷影副本索引
- 依赖卷影副本的节点级设置
- 索引统计信息
- 索引段
- 索引恢复
- 索引分片存储
- 清理缓存
- 刷新
- 同步刷新
- 重新加载
- 强制合并
- cat APIs
- cat aliases
- cat allocation
- cat count
- cat fielddata
- cat health
- cat indices
- cat master
- cat nodeattrs
- cat nodes
- cat pending tasks
- cat plugins
- cat recovery
- cat repositories
- cat thread pool
- cat shards
- cat segments
- cat snapshots
- 集群 API
- Cluster Allocation Explain API
- Cluster Health
- Cluster Reroute
- Cluster State
- Cluster Stats
- Cluster Update Settings
- Nodes hot_threads
- Nodes Info
- Nodes Stats
- Pending cluster tasks
- Task Management API
- 查询 DSL
- 查询和过滤上下文
- Match ALL 查询
- 全文搜索
- 匹配查询
- 短语匹配查询
- 短语前缀匹配查询
- 多字段查询
- 常用术语查询
- 查询语句查询
- 简单查询语句
- 复合查询家族
- Constant Score 查询
- Bool 查询
- Dis Max 查询
- Function Score 查询
- Boosting 查询
- Indices 查询
- Join 查询
- Has Child Query
- Has Parent Query
- Nested Query(嵌套查询)
- Parent Id Query
- 术语查询
- Exists Query(非空值查询)
- Fuzzy Query(模糊查询)
- Ids Query(ID 查询)
- Prefix Query(前缀查询)
- Range Query(范围查询)
- Regexp Query(正则表达式查询)
- Term Query(项查询)
- Terms Query(多项查询)
- Type Query(类型查询)
- Wildcard Query(通配符查询)
- 地理位置查询
- GeoShape Query(地理形状查询)
- Geo Bounding Box Query(地理边框查询)
- Geo Distance Query(地理距离查询)
- Geo Distance Range Query(地理距离范围查询)
- Geo Polygon Query(地理多边形查询)
- Span 查询
- Span Term 查询
- Span Multi Term 查询
- Span First 查询
- Span Near 查询
- Span Or 查询
- Span Not 查询
- Span Containing 查询
- Span Within 查询
- Span Field Masking 查询
- Specialized queries(专业查询)
- Mapping(映射)
- 字段类型
- Array
- Binary
- Range
- Boolean
- Date
- Geo-point datatype
- String
- Text
- Token数
- 渗滤型
- KeyWord
- Nested
- Object
- Numeric
- Meta-Fields(元字段)
- _all field
- _field_names field
- _id field
- _index field
- _meta field
- _parent field
- _routing field
- _source field
- _type field
- _uid field
- Mapping parameters(映射参数)
- analyzer(分析器)
- normalizer(归一化)
- boost(提升)
- Coerce(强制类型转换)
- copy_to(合并参数)
- doc_values(文档值)
- dynamic(动态设置)
- enabled(开启字段)
- fielddata(字段数据)
- format (日期格式)
- ignore_above(忽略超越限制的字段)
- ignore_malformed(忽略格式不对的数据)
- include_in_all(_all 查询包含字段)
- index_options(索引设置)
- index (索引)
- fields(字段)
- Norms (标准信息)
- null_value(空值)
- position_increment_gap(短语位置间隙)
- properties (属性)
- search_analyzer (搜索分析器)
- similarity (匹配方法)
- store(存储)
- Term_vectors(词根信息)
- Dynamic Mapping(动态映射)
- default mapping(mapping中的_default_)
- Dynamic field mapping(动态字段映射)
- Dynamic templates(动态模板)
- Override default template(覆盖默认模板)
- Mapping(映射)
- Analysis
- Tokenizers(分词器)
- Standard Tokenizer(标准分词器)
- Letter Tokenizer
- Lowercase Tokenizer (小写分词器)
- Whitespace Analyzer
- 停止分析器
- UAX URL Email Tokenizer
- Classic Tokenizer
- Thai Tokenizer(泰语分词器)
- NGram Tokenizer
- Keyword Analyzer
- Path Hierarchy Tokenizer(路径层次分词器)
- Pattern Tokenizer
- Token Filters(词元过滤器)
- Apostrophe Token Filter(撇号/单引号过滤器)
- ASCII Folding Token Filter(ASCII Folding 词元过滤器)
- CJK Bigram Token Filter(CJK Bigram词元过滤器)
- CJK Width Token Filter(CJK宽度过滤器)
- Classic Token Filter(经典过滤器)
- Common Grams Token Filter(近义词词元过滤器)
- Compound Word Token Filter(复合词过滤器)
- Decimal Digit Token Filter(十进制数字过滤器)
- Delimited Payload Token Filter(Delimited Payload词元分析器)
- Edge NGram Token Filter(Edge NGram 词元过滤器)
- Elision Token Filter(Elision词元过滤器)
- Fingerprint Token Filter(指纹过滤器)
- Flatten Graph Token Filter(Flatten Graph 词元过滤器)
- Hunspell Token Filter(Hunspell 词元过滤器)
- Keep Types Token Filter(保留指定类型过滤器)
- Keep Words Token Filter(保留字过滤器)
- Keyword Marker Token Filter(Keyword Marker 词元过滤器)
- Keyword Repeat Token Filter(Keyword Repeat 词元过滤器)
- KStem Token Filter(KStem 词元过滤器)
- Length Token Filter(长度词元过滤器)
- Limit Token Count Token Filter(限制词元数量过滤器)
- Lowercase Token Filter(Lowercase 词元过滤器)
- Minhash Token Filter(Minhash过滤器)
- NGram Token Filter(NGram词元过滤器)
- Normalization Token Filter(标准化词元过滤器)
- Pattern Capture Token Filter(模式匹配词元过滤器)
- Pattern Replace Token Filter(模式替换词元过滤器)
- Phonetic Token Filter(Phonetic 词元过滤器)
- Porter Stem Token Filter(Porter Stem 词元过滤器)
- Reverse Token Filteredit(反向词元过滤器)
- Shingle Token Filter(Shingle 词元过滤器)
- Snowball Token Filter(Snowball 词元过滤器)
- Standard Token Filters(标准词元过滤器)
- Stemmer Override Token Filter(Stemmer Override 词元过滤器)
- Stemmer Token Filter(Stemmer 词元过滤器)
- Stop Token Filter(Stop 词元过滤器)
- Synonym Graph Token Filter(Synonym Graph 词元过滤器)
- Synonym Token Filter(Synonym 词元过滤器)
- Trim Token Filter(Trim词元过滤器)
- Truncate Token Filter(截断词元过滤器)
- Unique Token Filter(唯一词元过滤器)
- Uppercase Token Filter(Uppercase词元过滤器)
- Word Delimiter Token Filter(Word Delimiter 词元过滤器)
- Character Filters(字符过滤器)
- md Strip Character Filter
- Mapping Character Filter
- Pattern Replace Character Filter
- Anatomy of an analyzer(分析器的分析)
- Testing analyzers(测试分析器)
- Analyzers(分析器)
- Configuring built-in analyzers(配置内置分析器)
- Standard Analyzer(标准分析器)
- Simple Analyzer(简单分析器)
- 空白分析器
- Stop Analyzer
- 指纹分析器
- 模式分析器
- 自定义分析器
- 语言分析器
- 模块
- Indices(索引)
- Circuit breakers(熔断器)
- Fielddata cache(列数据缓存)
- indexing buffer(索引写入缓冲)
- indices Recovery(索引恢复)
- NetWork Setting(网络配置)
- Node Query Cache(节点查询缓存)
- Shard request cache(分片请求缓存)
- 脚本
- Groovy 脚本语言
- Painless 脚本语言
- Painless 语法
- Painless 调试
- Lucene表达式语言
- 原生(Java)脚本
- 高级文本评分脚本
- 快照和还原
- 线程池
- 传输
- HTTP
- Tribe Node (部落节点)
- 跨集群搜索
- Cluster(集群)
- Disk-based Shard Allocation ( 基于磁盘的分片分配 )
- Shard Allocation Awareness ( 分片分配意识 )
- 群集级别分片分配
- Node
- 插件
- Index Modules(索引模块)
- Analysis(分析)
- 索引分片分配
- 分片分配过滤
- 节点丢失时的延迟分配
- 索引恢复的优先级
- 每个节点的总分片数
- Mapper(映射)
- Merge(合并)
- Similarity module(相似模块)
- Slow log(慢日志)
- Store
- 预加载数据到文件系统缓存
- Translog(事务日志)
- Ingest Node(预处理节点)
- Pipeline Definition(管道定义)
- Ingest APIs
- Put Pipeline API
- Get Pipeline API
- Delete Pipeline API
- Simulate Pipeline API(模拟管道 API)
- Accessing Data in Pipelines(访问管道中的数据)
- Handling Failures in Pipelines(处理管道中的故障)
- Processors(处理器)
- Append Processor(追加处理器)
- Convert Processor(转换处理器)
- Date Processor(日期处理器)
- Date Index Name Processor(日期索引名称处理器)
- Fail Processor(故障处理器)
- Foreach Processor(循环处理器)
- Grok Processor(Grok 处理器)
- Gsub Processor(Gsub 处理器)
- Join Processor(连接处理器)
- JSON Processor(JSON 处理器)
- KV Processor(KV 处理器)
- Lowercase Processor(小写处理器)
- Remove Processor(删除处理器)
- Rename Processor(重命名处理器)
- Script Processor(脚本处理器)
- Set Processor(设置处理器)
- Split Processor(拆分处理器)
- Sort Processor(排序处理器)
- Trim Processor(修剪处理器)
- Uppercase Processor(大写处理器)
- Dot Expander Processor(点扩展器处理器)
- How to(操作方式)
- 一些建议
- Recipes(诀窍)
- 索引速率调优
- 查询优化
- 磁盘使用调优
- Testing(测试)
- Java Testing Framework(测试框架)
- ( why randomized testing ) 为什么随机测试?
- Using the elasticsearch test classes ( 使用 elasticsearch 测试类 )
- unit tests(单元测试)
- integreation test(集成测试)
- Randomized testing(随机测试)
- Assertions()
- Glossary of terms (词汇表)
- Release Notes(版本说明)
- 5.3.0 版本说明
- 5.2.2 Release Notes
- 5.2.1 Release Notes
- 5.2.0 Release Notes
- 5.1.2 Release Notes
- 5.1.1 Release Notes
- 5.1.0 Release Notes
- 5.0.1 Release Notes