愚者求师之过,智者从师之长。

elasticsearch 多种语言查询如何实现?

Elasticsearch | 作者 wssmao | 发布于2018年10月26日 | 阅读数:3270

项目中,一个版本会有多种语言切换,elasticsearch 存储的内容,也可能有多种语言的内容存入,但是定义的模型是同一个。
这样如何实现呢?
比如,支持中文查询,定义mapping时,analyzer用了ik分词器。
但是如果要同时支持多种语言(中文、英文、日文、俄文)时,mapping如何复用呢?
已邀请:

rochy - rochy_he

赞同来自:

对语言的搜索,就看你存储的内容了
如果你存储的内容是每一种语言一个文本,例如:中文你存储了“你好么?”,英文你存“how are you?”
那么你必然需要两个字段来存储,你只需要对这两个字段设置不同的分词器即可。
 
如果你想一个文本就解决多语言搜索,这一般是不可能实现的;除非你存储的是转换过的语言;
原理就是你先要把 日文、韩文、英文都转换为中文,然后最后使用中文搜索即可,这样就和普通中文搜索没什么两样

wssmao

赞同来自:

多谢答复。
 查了一下,官网当前给出的解决方案:
1、不同语言存不同的索引。
2、不同语言存多个field。
 
对比了一下,可能暂时采用第一种方案吧。

要回复问题请先登录注册