项目中,一个版本会有多种语言切换,elasticsearch 存储的内容,也可能有多种语言的内容存入,但是定义的模型是同一个。
这样如何实现呢?
比如,支持中文查询,定义mapping时,analyzer用了ik分词器。
但是如果要同时支持多种语言(中文、英文、日文、俄文)时,mapping如何复用呢?
这样如何实现呢?
比如,支持中文查询,定义mapping时,analyzer用了ik分词器。
但是如果要同时支持多种语言(中文、英文、日文、俄文)时,mapping如何复用呢?
2 个回复
rochy - rochy_he
赞同来自:
如果你存储的内容是每一种语言一个文本,例如:中文你存储了“你好么?”,英文你存“how are you?”
那么你必然需要两个字段来存储,你只需要对这两个字段设置不同的分词器即可。
如果你想一个文本就解决多语言搜索,这一般是不可能实现的;除非你存储的是转换过的语言;
原理就是你先要把 日文、韩文、英文都转换为中文,然后最后使用中文搜索即可,这样就和普通中文搜索没什么两样
wssmao
赞同来自:
查了一下,官网当前给出的解决方案:
1、不同语言存不同的索引。
2、不同语言存多个field。
对比了一下,可能暂时采用第一种方案吧。