gpt4 book ai didi

java - 如何在 Lucene 查询中添加 WHERE 条件

转载 作者:行者123 更新时间:2023-12-02 08:53:55 25 4
gpt4 key购买 nike

我有以下代码,用于使用 Lucene 查询在 Student_table 中搜索“关键字”。

public List search(String search, LONG studentCity) {
FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManager);
QueryBuilder qb = fullTextEntityManager.getSearchFactory().buildQueryBuilder().forEntity(Spot.class).get();
Query luceneQuery = qb.keyword().fuzzy().withEditDistanceUpTo(1).withPrefixLength(1).onFields("name", "description", "address").matching(search).createQuery();

我获取了student_table中包含“关键字”的所有行,但我需要添加一个条件,例如:“where Student_table.city_id= StudentCity

所以我可以通过City Id来限制查询的结果。谢谢。

最佳答案

要添加 city_id=studentCity 条件,您将需要一个 TermQuery(以及为文档建立索引时的适当字段类型)之后,您必须将模糊查询和 TermQuery 包装在 BooleanQuery 中,并将两个出现条件设置为 MUST。

这将是您传递给 IndexReader/IndexSearcher 的查询。

希望有帮助!

关于java - 如何在 Lucene 查询中添加 WHERE 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60601786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com