如何使用Mongoosastic处理ElasticSearch自动完成中的非拉丁字符?

时间:2017-03-01 14:00:47

标签: elasticsearch mongoosastic

使用es.search({size: 0, suggest: ...}使用完成映射,可以使用非拉丁变音符号(重音字符,如â,ê等),自动完成工作正常。

我正在使用mongoosastic创建映射。我需要能够使用类似asciifolding的内容作为建议,或者在响应中添加其他字段。

我有这些领域:

  • name这是带有变音符号的那个。
  • nameSearch这是name latinized(没有变音符号/重音字符)。

我需要的是继续完成name的完成建议,但将a视为与â相同(反之亦然)。

在回复中我需要name。不是nameSearch

1 个答案:

答案 0 :(得分:0)

我再次偶然发现了这个问题,这次没有mongoosastic。答案是在索引查询中包含settings字段(在mongoosastic中,您可以在使用自定义映射时添加它)。

settings: {
  analysis: {
    analyzer: {
      folding: {
        tokenizer: 'standard',
        filter: ['lowercase', 'custom_asciifolding'],
      },
    },
    filter: {
      custom_asciifolding: {
        type: 'asciifolding',
        preserve_original: true,
      },
    },
  },
}
相关问题