Database design 在文档中按位置存储用于查询的文本信息

Database design 在文档中按位置存储用于查询的文本信息,database-design,text,data-mining,Database Design,Text,Data Mining,我目前正在尝试将一个文档存储在数据库中,以便能够快速提取特定位置的单词 范例 查询:/doc1?开始=2,结束=5 这将检索该文档中的第二到第五个单词。我愿意使用任何类型的数据库。我不想每次查询都要加载和解析整个文档中的这些单词 目前我正在考虑将单词加载到类似elasticsearch或redis的格式中 {单词:“苹果”,索引:1} 具有表示文档的层次结构。这是解决我问题的有效方法还是我应该去别处看看?有什么好处 如果您已经处于文档级别,那么阅读整个文档并根据需要提取单词是很便宜的 棘手的查询

我目前正在尝试将一个文档存储在数据库中,以便能够快速提取特定位置的单词

范例 查询:/doc1?开始=2,结束=5

这将检索该文档中的第二到第五个单词。我愿意使用任何类型的数据库。我不想每次查询都要加载和解析整个文档中的这些单词

目前我正在考虑将单词加载到类似elasticsearch或redis的格式中
{单词:“苹果”,索引:1}
具有表示文档的层次结构。这是解决我问题的有效方法还是我应该去别处看看?

有什么好处

如果您已经处于文档级别,那么阅读整个文档并根据需要提取单词是很便宜的

棘手的查询是“查找word x出现在word y附近的所有文档”(Xapian和Lucene等文本搜索引擎可以很好地做到这一点)

当您想要获取单个文档的内容时,最好的索引是通过“文档id”,除非您有非常长的文档(此时您可能希望将其拆分为100个单词)

将您的文档表示为:

["this", "is", "an", "example", "document"]

您的RDBMS是什么?MSSQL有一个全文搜索组件,但我还没有使用它。谢谢,但我现在想坚持使用开源解决方案。