【发布时间】:2018-11-08 08:02:11
【问题描述】:
我使用 Hibernate Search 5.10.3,我无法搜索仅包含 N 个相等单词的结果。例如,在我的索引中有以下示例:
1. foo foo
2. foo bar
我只想获取匹配“foo foo”的第 1 行,所以我进行以下查询:
queryBuilder.simpleQueryString().onField("myField").matching("foo + foo").createQuery();
但是这个查询同时返回“foo foo”和“foo bar”。 如何使用休眠搜索来做到这一点?
一般来说,我需要考虑到它们的数量,以任何顺序搜索所有输入的单词。 1)搜索查询中的所有单词必须以任意顺序出现在该字段中 2)具有相同的计数。我可以达到 1) 但不知道如何达到 2)。示例:
1. foo bar smth
2. foo bar smth bar
如果我搜索“bar smth foo”,我只需要 1 个。如果“bar foo bar smth” - 只需要 2 个。
【问题讨论】:
-
通配符有用吗?
.matching("*foo*foo*")lucene.apache.org/core/2_9_4/…
标签: java hibernate hibernate-search