免责声明: 我从未成为数据库大师。而我只是开始使用弹性搜索。 :)
我正在创建一个字典型数据库。
在MySQL术语中,我有一个“Words”表,如下所示:
|-------------------
| Words
|-------------------
| id
| name
| part_of_speech
| language
|-------------------
还有一个“翻译”表,将单词连接在一起,如:
|-------------------
| Translations
|-------------------
| word_a_id
| word_b_id
| sense
|-------------------
如何将其迁移到弹性搜索?
我创建了一个dictionary
类型的索引word
。
我如何设置translations
表并仍然保留对现有“单词”的引用?我错过了一些概念性的东西吗?
答案 0 :(得分:1)
ElasticSearch在概念上是基于文档的,而不是基于关系的。实现目标的一种可能方式是创建"翻译" index,其中每个条目都包含一组嵌套的" word - POS - 语言"对和一个"意思"领域。然后,您可以搜索包含给定单词的每个条目的索引。
或者,您可以考虑" word"翻译的儿童文件"。这与您目前的方法更相似。在ElasticSearch中,您必须查找给定单词的父翻译,然后再次调用以查找属于给定语言的翻译的子单词。
我无法判断这是否是最有用的翻译方法,因为单词具有多种含义,对于不同的语言,它们并不完全重叠,但这是一个不同的主题。