我使用Hibernate以及基于Grails Searchable Plugin和Lucene的Compass。我想知道什么时候应该使用什么来查询数据库中的对象。
使用Hibernate以及何时使用Searchable是否有经验法则?
答案 0 :(得分:2)
当您想到在整个应用程序中搜索自由格式文本时,Searcable插件将非常有用。
举一个例子,如果您正在处理银行应用程序,并且您正在构建具有搜索功能的门户。并且您希望搜索是所有关键元素(如客户名称,ssn,电话号码和/或电子邮件ID)的自由格式,然后您希望使用可搜索的索引进行索引并提供可搜索的搜索以获得即时搜索结果。为此,您必须至少索引这些关键元素。当你添加更多的关键搜索元素时,索引会增长为。
另一方面,如果您不想索引大量元素,hibernate将帮助您提供详细信息。为了扩展上面的例子,一旦你在SSN上搜索并获得了一个命中,在选择该条目时你可以使用hibernate从底层持久层获取详细信息,使用hibernate。
<强>推论:强>
对于快速,高性能,自由格式搜索可选择
为了收集详细信息,发布搜索,我认为hibernate是要走的路,除非你想使用可搜索的细节信息,在这种情况下索引的大小将在Gigs中。
在弹性搜索中关注here,这可能有助于理解。 我的观点是使弹性/可搜索的打火机保持重物提升部分由冬眠处理。
注意强>
另外,我建议使用elastic而不是可搜索的。它还有一个很有用的groovy API。另请注意,弹性插件现在使用v0.20.0版本的elastic search,最新的版本是v0.90.2我猜。如果需要,您可以直接使用弹性搜索作为依赖项并获取最新功能。