2017-06-29 126 views
0

我一直在为购物网站应用程序开发示范应用程序。我使用Spring + Hibernate来管理后端服务器上的事物。现在,因为我希望应用程序的用户能够搜索产品,就像他们在谷歌搜索的东西,我得出的结论是,Hibernate搜索最适合我的需求。不过,我希望应用的管理员能够通过为多个属性提供搜索过滤器来搜索内容。例如,“PRODUCT”表具有诸如id,name,desc,created_date等字段,我想为管理员提供不同的输入方式,例如id,name,desc和created_date的部分数据,并且可以获得相关信息搜索结果。 Hibernate Search允许我通过将查询与“and”,“should”等子句相结合来实现。但是,为了实现这一点,我必须使用@Field注释来注释所有可搜索的字段。Hibernate搜索其他搜索条件

我的问题在于,如果用@Field注释所有可搜索的属性或者是否有其他解决相同问题的方法是明智的?

+0

你能不能解释所有的领域是什么也正是困扰你?要注释的字段数量?将注释添加到类的简单事实?还有别的吗? –

+0

我很担心查询的性能。如果我尝试索引所有列,就像我有一个名为“create_user_id”的字段,并且我希望用户能够对其执行全文搜索,那么将该字段索引到hibernate搜索以及所有其他字段中会减少性能? –

+0

好吧,那么我第二@ Sanne的回答:只需注释你需要的所有领域。除非您真正尝试了该工具并注意到问题,否则不要担心性能问题,否则可能会浪费您的时间。在Lucene(Hibernate Search背后的引擎)上工作的人已经花费了大量的时间优化,所以除非你的用例真的很奇特(比如数百或数千个字段),Lucene应该很好地处理这个问题。 –

回答

1

我会建议简单地注释你需要@Field