在设计应用程序时,我想知道 ElasticSearch 是否是实现它的合适工具(以及如何实现它)。任何建议将不胜感激!
我的应用程序需要存储(许多)文档,每个文档都表示为一个单词序列。我还想将信息与每个单词相关联。例如,假设我想将单词长度与每个单词相关联。所以我会有这样的事情:
The house is yellow
3 5 2 6
现在,我想执行查询,例如“给我长度为 2 的单词,后跟单词 'yellow'”。在关系数据库中,我会将单词形式和长度存储为不同的属性,例如:
Word Length N
---------------------------
the 3 1
house 5 2
is 2 3
yellow 6 4
(其中 N 是单词的位置),在 SQL 中我会做这样的事情:
SELECT word, N1 as N
FROM documents
WHERE (word=”yellow” AND N1 in (SELECT N2 as N
FROM documents
WHERE length=2 AND (N1-N2=1 OR N2-N1=1)
)
)
我正在努力在 ElasticSearch 中实现同样的功能。我已经阅读了在线手册和参考书,但我无法弄清楚如何使用 ES 做到这一点。因此,您的任何建议将不胜感激。
考虑到:数据库将有许多与单词相关的属性,我需要查询它们的任意组合。这些属性是预先计算好的并离线加载到数据库中。
谢谢!