java 复杂搜索
java complex search
我正在尝试使用 Spring 引导和 REST 架构构建一个基于 java 的 Web 应用程序,使用 Spring MVC 用于以下目的:
通过多组条件搜索汽车零件。
我尝试在不同的场景下进行解释:
找到 Brand B
的 part A
for Make C
of Model D
of year x
.
找出 parts
可用的 Brand B
的 Make C
的 Model D
的 Year x
。
在 multiple items at once
中搜索 Vehicle C
,共 Model D
,共 Year x
。例如,如果发动机损坏,我想快速查明供应中是否有零件(如活塞、气缸、垫圈等)。此搜索的结果是带有品牌和价格的零件列表。
目前我最关心的是以下两个问题:
- 我应该如何对数据建模以便高效地实现搜索场景?我的意思是 Java 中的实体和持久性系统之间的关系应该是什么样的?
- 我应该使用什么样的数据库? SQL 或否SQL?
所有 REST 端点都将 return Json 对象。
我将使用 Angular 和 Bootstrap 作为前端
这种情况不就是典型的"faceted search"吗?我认为任何旨在实现分面搜索的解决方案都应该可以正常工作。例如 Solr 或 Elasticsearch。
"faceted search" 对最终用户的好处是可以选择优化搜索。用户可以从广泛的搜索开始,系统将根据当前搜索结果提供细化过滤条件。
今天,所有主要 e-commerce 网站都有一种分面搜索,每个搜索引擎都支持这种类型的浏览。
在我看来,像 Solr 和 Elasticsearch 这样的引擎是更自然的解决方案,但即使像 Oracle 这样的标准 RDBMS 也支持分面搜索。
我会把重点放在干净地而不是高效地建模上——除非您已经知道您将拥有大量数据。如果以后需要,将其结构清晰地进行优化将很容易。
标准化您的数据 - 将有大量关于如何执行此操作的信息。汽车行业正变得越来越整合,许多零件现在在不同车型甚至不同品牌之间共享。
可以使用像 hibernate 这样的 ORM 将您的实体映射到您的表。 Spring 在这方面提供了额外的支持,您可能会考虑使用 Spring MVC。
我正在尝试使用 Spring 引导和 REST 架构构建一个基于 java 的 Web 应用程序,使用 Spring MVC 用于以下目的:
通过多组条件搜索汽车零件。
我尝试在不同的场景下进行解释:
找到
Brand B
的part A
forMake C
ofModel D
ofyear x
.找出
parts
可用的Brand B
的Make C
的Model D
的Year x
。在
multiple items at once
中搜索Vehicle C
,共Model D
,共Year x
。例如,如果发动机损坏,我想快速查明供应中是否有零件(如活塞、气缸、垫圈等)。此搜索的结果是带有品牌和价格的零件列表。
目前我最关心的是以下两个问题:
- 我应该如何对数据建模以便高效地实现搜索场景?我的意思是 Java 中的实体和持久性系统之间的关系应该是什么样的?
- 我应该使用什么样的数据库? SQL 或否SQL?
所有 REST 端点都将 return Json 对象。 我将使用 Angular 和 Bootstrap 作为前端
这种情况不就是典型的"faceted search"吗?我认为任何旨在实现分面搜索的解决方案都应该可以正常工作。例如 Solr 或 Elasticsearch。
"faceted search" 对最终用户的好处是可以选择优化搜索。用户可以从广泛的搜索开始,系统将根据当前搜索结果提供细化过滤条件。
今天,所有主要 e-commerce 网站都有一种分面搜索,每个搜索引擎都支持这种类型的浏览。
在我看来,像 Solr 和 Elasticsearch 这样的引擎是更自然的解决方案,但即使像 Oracle 这样的标准 RDBMS 也支持分面搜索。
我会把重点放在干净地而不是高效地建模上——除非您已经知道您将拥有大量数据。如果以后需要,将其结构清晰地进行优化将很容易。
标准化您的数据 - 将有大量关于如何执行此操作的信息。汽车行业正变得越来越整合,许多零件现在在不同车型甚至不同品牌之间共享。
可以使用像 hibernate 这样的 ORM 将您的实体映射到您的表。 Spring 在这方面提供了额外的支持,您可能会考虑使用 Spring MVC。