Globalize Tire ElasticSearch和重点折叠

时间:2014-01-30 15:39:09

标签: ruby-on-rails elasticsearch tire

在遵循有关此问题的建议后:

i18n search using tire and Globalize3

我为自己的标题和正文字段编制索引。问题是,当索引工作时,当我进行搜索时,它不会折叠重音符号。我像这样配置搜索到的模型:

settings index: { analysis: {
                    analyzer: {
                      index_analyzer: {
                        tokenizer: "whitespace",
                        filter: ["asciifolding", "lowercase", "snowball"]
                      },
                      search_analyzer: {
                        tokenizer: "whitespace",
                        filter: ["asciifolding", "lowercase", "snowball"]
                      }
                    }
                  }
                }

那么为什么Tire不使用这些分析仪?

1 个答案:

答案 0 :(得分:1)

您是否将这些分析仪应用于任何领域?您在该字段上搜索,还是在_all字段上搜索?

如果您打算将这些分析器用作整个索引的默认分析器,则应将它们命名为default_indexdefault_search。实际上它们都是相同的,因此您只需将分析器指定为default

这是Elasticsearch如何确定在索引时使用哪个分析器:

  • 字段映射中定义的index_analyzer,否则
  • 字段映射中定义的analyzer,否则
  • 在文档的_analyzer字段中定义的分析器,否则
  • index_analyzer的默认type,默认为
  • analyzer的默认type,默认为
  • 索引设置中名为default_index的分析器,默认为
  • 索引设置中名为default的分析器,默认为
  • 在节点级别命名为default_index的分析器,默认为
  • 在节点级别命名为default的分析器,默认为
  • standard分析器

并在搜索时间:

  • 查询本身定义的analyzer,否则
  • 字段映射中定义的search_analyzer,否则
  • 字段映射中定义的analyzer,否则
  • search_analyzer的默认type,默认为
  • analyzer的默认type,默认为
  • 索引设置中名为default_search的分析器,默认为
  • 索引设置中名为default的分析器,默认为
  • 在节点级别命名为default_search的分析器,默认为
  • 在节点级别命名为default的分析器,默认为
  • standard分析器