免责声明:我从没当过数据库专家。而且我只是开始使用Elastic Search。 :)

我正在创建一个词典类型的数据库。

用MySQL术语来说,我有一个“单词”表,像这样:

|-------------------
| Words
|-------------------
| id
| name
| part_of_speech
| language
|-------------------

和“翻译”表,将单词链接在一起,例如:
|-------------------
| Translations
|-------------------
| word_a_id
| word_b_id
| sense
|-------------------

如何将其迁移到Elastic Search?

我创建了一个类型为dictionary的索引word

如何设置translations表并仍然保留对现有“单词”的引用?我缺少概念性的东西吗?

最佳答案

ElasticSearch在概念上是基于文档的,而不是基于关系的。实现所需目标的一种可能方法是创建“翻译”索引,其中每个条目将包含一组嵌套的“单词-POS-语言”对和“含义”字段。然后,您可以在此索引中搜索包含给定单词的每个条目。

或者,您可以将“单词”视为“翻译”的子文档。那将与您当前的方法更相似。在ElasticSearch中,您将必须查找给定单词的父翻译,然后再次调用以查找属于给定语言的该翻译的子单词。

我不能说这是否是最有用的翻译方法,因为单词有多种含义,对于不同的语言,它们不会完全重叠,但这是一个不同的主题。

关于mysql - 数据库设计和 Elasticsearch ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33198031/

10-11 22:36
查看更多