Hibernate关键字搜索

时间:2014-05-23 13:16:39

标签: hibernate hibernate-search

例如,当我使用此DSL进行搜索时:

Query query = queryBuilder.keyword().onField("person").matching("man").createQuery();

我希望结果只包含字段man上的单个字person,而字段上没有像He is a man这样的结果。我该怎么办?

有人有线索吗? THX

2 个答案:

答案 0 :(得分:1)

这不是自由文本搜索的工作方式。您不能说它只应匹配搜索词匹配且只有一个词。自由文本搜索引擎的重点是在给定的文本语料库中查找匹配。如果您的现场人员包含一次" man"曾经"他是一个男人"你得到两者的匹配(除非你索引未分析的字段)。差异在于得分。

答案 1 :(得分:1)

在你的情况下,我坚持使用标准的Hibernate查询(在HQL中,它类似于from MyClass mc where mc.person = "man")。您可以找到有关HQL here

的更多信息

如果不能选择HQL,请考虑使用JPA条件API。

正如@Hardy在回答中提到的,您的用例与全文搜索方法不匹配。