使用逻辑模式查询Hibernate搜索



我正在我的项目中集成Hibernate搜索,目前它工作得很好。

现在我想以这种方式改进我的搜索:基本上,作为一个用户,我想传递一个查询,比如term1 AND term2 OR term3等等。当然,项的数量可以不同。

所以我的想法是用逻辑运算符构建一个合适的搜索来帮助用户找到他们想要的

您必须通过使用()来分离使用ANDOR的条件。如。(term1 AND term2) OR term3

如果你再次想使用一些术语,它应该像((term1 AND term2) OR term3) AND term4这样.....

如果你有一个实体,你可以使用这个stackoverflow答案。

您可以使用布尔查询:

Query luceneQuery = b.bool()
    .must(b.keyword().onField("fieldName").matching("term1").createQuery())
    .must(b.keyword().onField("fieldName").matching("term2").createQuery())
    .should(b.keyword().onField("fieldName").matching("term3").createQuery())
    .except(b.keyword().onField("fieldName").matching("term4").createQuery())
    .createQuery();

必须:查询必须包含此项(如AND)。

should:查询是否应该执行此查询(如OR)。

except:排除包含此术语的文档(如NOT)。

相关内容

  • 没有找到相关文章

最新更新