目前,我正在尝试选择最好的DB范例来实现一个具有全文搜索和分面搜索功能的网站。我有一个重要的功能要求:
例如,我们的业务可以在注册表上设置一个额外的数据项,在任何搜索中都应该考虑到这一点。如果我们使用关系模式,这种修改需要修改数据库模式(通过添加或删除行以及修改外键等)。显然,这可能导致不必要的可维护性问题。
发布于 2011-08-08 17:58:49
我可能会建议另一种方法:使用一个索引/搜索库,比如Lucene或Lucene.net。他们已经实现了许多复杂的索引、搜索语法和优化。
(不确定这些是否合适,您没有提到特定的环境或语言)
如果您打算实现自己的数据库,那么将有一些您没有提到要考虑的设计注意事项。例如,用户可以仅通过映射到SQL部分文本查询的单词和短语进行搜索(从“%关键字%”等内容的文档中选择*),还是希望能够指定关键字、按字段搜索、按日期搜索等等?
发布于 2011-08-08 18:04:01
另一个选择是实体-属性值模型。如果在大多数现代关系数据库管理系统中这样做,也可以获得全文搜索。
没有足够的信息来知道您的应用程序是否适合这样做。可能存在性能问题,必须将值转换为单独的列,amy提出了动态编码挑战。
有很多关于NoSQL类型数据库的优缺点的文章。
https://softwareengineering.stackexchange.com/questions/99470
复制相似问题