指定分析器
编辑指定分析器编辑
Elasticsearch 提供多种方法来指定内置或自定义分析器
- 按
text
字段、索引或查询 - 用于 索引或搜索时间
Elasticsearch 如何确定索引分析器编辑
Elasticsearch 通过按顺序检查以下参数来确定要使用的索引分析器
- 字段的
analyzer
映射参数。请参阅 指定字段的分析器。 analysis.analyzer.default
索引设置。请参阅 指定索引的默认分析器。
如果未指定这些参数中的任何一个,则使用 standard
分析器。
指定字段的分析器编辑
在映射索引时,可以使用 analyzer
映射参数为每个 text
字段指定一个分析器。
以下 创建索引 API 请求将 whitespace
分析器设置为 title
字段的分析器。
response = client.indices.create( index: 'my-index-000001', body: { mappings: { properties: { title: { type: 'text', analyzer: 'whitespace' } } } } ) puts response
PUT my-index-000001 { "mappings": { "properties": { "title": { "type": "text", "analyzer": "whitespace" } } } }
指定索引的默认分析器编辑
除了字段级分析器之外,还可以使用 analysis.analyzer.default
设置设置一个回退分析器。
以下 创建索引 API 请求将 simple
分析器设置为 my-index-000001
的回退分析器。
response = client.indices.create( index: 'my-index-000001', body: { settings: { analysis: { analyzer: { default: { type: 'simple' } } } } } ) puts response
PUT my-index-000001 { "settings": { "analysis": { "analyzer": { "default": { "type": "simple" } } } } }
Elasticsearch 如何确定搜索分析器编辑
在大多数情况下,指定不同的搜索分析器是不必要的。这样做可能会对相关性产生负面影响,并导致意外的搜索结果。
如果您选择指定单独的搜索分析器,建议您在生产环境中部署之前彻底 测试您的分析配置。
在搜索时,Elasticsearch 通过按顺序检查以下参数来确定要使用的分析器
- 搜索查询中的
analyzer
参数。请参阅 指定查询的搜索分析器。 - 字段的
search_analyzer
映射参数。请参阅 指定字段的搜索分析器。 analysis.analyzer.default_search
索引设置。请参阅 指定索引的默认搜索分析器。- 字段的
analyzer
映射参数。请参阅 指定字段的分析器。
如果未指定这些参数中的任何一个,则使用 standard
分析器。
指定查询的搜索分析器编辑
在编写 全文查询 时,可以使用 analyzer
参数指定搜索分析器。如果提供,这将覆盖任何其他搜索分析器。
以下 搜索 API 请求将 stop
分析器设置为 match
查询的搜索分析器。
response = client.search( index: 'my-index-000001', body: { query: { match: { message: { query: 'Quick foxes', analyzer: 'stop' } } } } ) puts response
GET my-index-000001/_search { "query": { "match": { "message": { "query": "Quick foxes", "analyzer": "stop" } } } }
指定字段的搜索分析器编辑
在映射索引时,可以使用 search_analyzer
映射参数为每个 text
字段指定一个搜索分析器。
如果提供了搜索分析器,则必须使用 analyzer
参数指定索引分析器。
以下 创建索引 API 请求将 simple
分析器设置为 title
字段的搜索分析器。
response = client.indices.create( index: 'my-index-000001', body: { mappings: { properties: { title: { type: 'text', analyzer: 'whitespace', search_analyzer: 'simple' } } } } ) puts response
PUT my-index-000001 { "mappings": { "properties": { "title": { "type": "text", "analyzer": "whitespace", "search_analyzer": "simple" } } } }
指定索引的默认搜索分析器编辑
在 创建索引 时,可以使用 analysis.analyzer.default_search
设置设置默认搜索分析器。
如果提供了搜索分析器,则必须使用 analysis.analyzer.default
设置指定默认索引分析器。
以下 创建索引 API 请求将 whitespace
分析器设置为 my-index-000001
索引的默认搜索分析器。
response = client.indices.create( index: 'my-index-000001', body: { settings: { analysis: { analyzer: { default: { type: 'simple' }, default_search: { type: 'whitespace' } } } } } ) puts response
PUT my-index-000001 { "settings": { "analysis": { "analyzer": { "default": { "type": "simple" }, "default_search": { "type": "whitespace" } } } } }