我正在尝试使用 Spring Boot 和 REST 架构使用 Spring MVC 构建基于 Java 的 Web 应用程序,目的如下:
通过多组标准搜索汽车零件。
我尝试在不同的场景中解释它:
为
的
。模型D
的Make C
找到Brand B
的part A
第 x 年找出
Brand B
的Make C
的Model D
有哪些parts
x 年
。在
x 年
的Model D
中一次搜索多个项目
的Vehicle C
。例如,如果发动机损坏,我想快速查明供应中是否有零件(如活塞、气缸、垫圈等)。此搜索的结果是带有品牌和价格的零件列表。
目前我最关心的是以下两个问题:
- 我应该如何对数据建模以便高效地实现搜索场景?我的意思是,Java 中的实体和持久化系统之间的关系应该是什么样的?
- 我应该使用哪种数据库? SQL 还是 NoSQL?
所有 REST 端点都将返回 Json 对象。 我将在前端使用 Angular 和 Bootstrap
最佳答案
这个场景不就是典型的“分面搜索”吗?我认为任何旨在实现分面搜索的解决方案都应该可以正常工作。例如 Solr 或 Elasticsearch。
对于最终用户来说,“分面搜索”的优势在于可以选择优化搜索。用户可以从广泛的搜索开始,系统将根据当前搜索结果提供细化的过滤条件。
今天,所有主要的电子商务网站都有一种分面搜索,每个搜索引擎都支持这种类型的浏览。
在我看来,像 Solr 和 Elasticsearch 这样的引擎是更自然的解决方案,但即使像 Oracle 这样的标准 RDBMS 也支持分面搜索。
关于java复杂搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34832120/