🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 配置分析器 第三个重要的索引设置是 `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_" } } } } } ``` <!-- SENSE: 070_Index_Mgmt/15_Configure_Analyzer.json --> `es_std` 分析器不是全局的,它仅仅存在于我们定义的 `spanish_docs` 索引中。为了用 `analyze` API 来测试它,我们需要使用特定的索引名。 ``` GET /spanish_docs/_analyze?analyzer=es_std El veloz zorro marrón ``` <!-- SENSE: 070_Index_Mgmt/15_Configure_Analyzer.json --> 下面简化的结果中显示停用词 `El` 被正确的删除了: ``` { "tokens" : [ { "token" : "veloz", "position" : 2 }, { "token" : "zorro", "position" : 3 }, { "token" : "marrón", "position" : 4 } ] } ```