-
Introduction
- 入门
- 分布式集群
- 数据
- 分布式增删改查
- 搜索
- 映射和分析
- 结构化查询
- 排序
- 分布式搜索
- 索引管理
- 深入分片
- 结构化搜索
- 全文搜索
- 多字段搜索
- 模糊匹配
- Partial_Matching
- Relevance
- Language intro
- Identifying words
- Token normalization
- Stemming
- Stopwords
- Synonyms
- Fuzzy matching
-
Aggregations
-
overview
-
circuit breaker fd settings
-
filtering
-
facets
-
docvalues
-
eager
-
breadth vs depth
-
Conclusion
-
concepts buckets
-
basic example
-
add metric
-
nested bucket
-
extra metrics
-
bucket metric list
-
histogram
-
date histogram
-
scope
-
filtering
-
sorting ordering
-
approx intro
-
cardinality
-
percentiles
-
sigterms intro
-
sigterms
-
fielddata
-
analyzed vs not
-
overview
- 地理坐标点
- Geohashe
- 地理位置聚合
- 地理形状
- 关系
- 嵌套
- Parent Child
- Scaling
- Cluster Admin
- Deployment
- Post Deployment
配置分析器
第三个重要的索引设置是 analysis
部分,用来配置已存在的分析器或创建自定义分析器来定制化你的索引。
在【分析器介绍】中,我们介绍了一些内置的分析器,用于将全文字符串转换为适合搜索的倒排索引。
standard
分析器是用于全文字段的默认分析器,对于大部分西方语系来说是一个不错的选择。它考虑了以下几点:
standard
分词器,在词层级上分割输入的文本。standard
标记过滤器,被设计用来整理分词器触发的所有标记(但是目前什么都没做)。lowercase
标记过滤器,将所有标记转换为小写。stop
标记过滤器,删除所有可能会造成搜索歧义的停用词,如a
,the
,and
,is
。
默认情况下,停用词过滤器是被禁用的。如需启用它,你可以通过创建一个基于 standard
分析器的自定义分析器,并且设置 stopwords
参数。可以提供一个停用词列表,或者使用一个特定语言的预定停用词列表。
在下面的例子中,我们创建了一个新的分析器,叫做 es_std
,并使用预定义的西班牙语停用词:
PUT /spanish_docs
{
"settings": {
"analysis": {
"analyzer": {
"es_std": {
"type": "standard",
"stopwords": "_spanish_"
}
}
}
}
}
copy
es_std
分析器不是全局的,它仅仅存在于我们定义的 spanish_docs
索引中。为了用 analyze
API 来测试它,我们需要使用特定的索引名。
GET /spanish_docs/_analyze?analyzer=es_std
El veloz zorro marrón
copy
下面简化的结果中显示停用词 El
被正确的删除了:
{
"tokens" : [
{ "token" : "veloz", "position" : 2 },
{ "token" : "zorro", "position" : 3 },
{ "token" : "marrón", "position" : 4 }
]
}
copy