analyzer
编辑analyzer
编辑
只有 text
字段支持 analyzer
映射参数。
analyzer
参数指定用于对 text
字段进行索引或搜索时进行 文本分析 的 分析器。
除非使用 search_analyzer
映射参数覆盖,否则此分析器将用于 索引和搜索分析。请参阅 指定分析器。
我们建议在生产环境中使用分析器之前对其进行测试。请参阅 测试分析器。
analyzer
设置不能使用 更新映射 API 在现有字段上更新。
search_quote_analyzer
编辑
search_quote_analyzer
设置允许您为短语指定一个分析器,这在处理禁用短语查询的停用词时特别有用。
要禁用短语的停用词,需要使用三个分析器设置的字段
- 一个
analyzer
设置用于索引所有术语,包括停用词 - 一个
search_analyzer
设置用于非短语查询,它将删除停用词 - 一个
search_quote_analyzer
设置用于短语查询,它不会删除停用词
response = client.indices.create( index: 'my-index-000001', body: { settings: { analysis: { analyzer: { my_analyzer: { type: 'custom', tokenizer: 'standard', filter: [ 'lowercase' ] }, my_stop_analyzer: { type: 'custom', tokenizer: 'standard', filter: [ 'lowercase', 'english_stop' ] } }, filter: { english_stop: { type: 'stop', stopwords: '_english_' } } } }, mappings: { properties: { title: { type: 'text', analyzer: 'my_analyzer', search_analyzer: 'my_stop_analyzer', search_quote_analyzer: 'my_analyzer' } } } } ) puts response response = client.index( index: 'my-index-000001', id: 1, body: { title: 'The Quick Brown Fox' } ) puts response response = client.index( index: 'my-index-000001', id: 2, body: { title: 'A Quick Brown Fox' } ) puts response response = client.search( index: 'my-index-000001', body: { query: { query_string: { query: '"the quick brown fox"' } } } ) puts response
PUT my-index-000001 { "settings":{ "analysis":{ "analyzer":{ "my_analyzer":{ "type":"custom", "tokenizer":"standard", "filter":[ "lowercase" ] }, "my_stop_analyzer":{ "type":"custom", "tokenizer":"standard", "filter":[ "lowercase", "english_stop" ] } }, "filter":{ "english_stop":{ "type":"stop", "stopwords":"_english_" } } } }, "mappings":{ "properties":{ "title": { "type":"text", "analyzer":"my_analyzer", "search_analyzer":"my_stop_analyzer", "search_quote_analyzer":"my_analyzer" } } } } PUT my-index-000001/_doc/1 { "title":"The Quick Brown Fox" } PUT my-index-000001/_doc/2 { "title":"A Quick Brown Fox" } GET my-index-000001/_search { "query":{ "query_string":{ "query":"\"the quick brown fox\"" } } }
search_quote_analyzer
设置可以使用 更新映射 API 在现有字段上更新。
|
|
|
|
|
|
|
|
|
|
由于查询被包含在引号中,因此它被检测为短语查询,因此 |