gpt4 book ai didi

java - Lucene查询修改

转载 作者:行者123 更新时间:2023-11-30 06:23:48 25 4
gpt4 key购买 nike

我有一个要求,我想修改字符串格式的 lucene 查询值。我将 lucene 查询作为用户界面的输入并将其传递给弹性。

例如

输入:姓名:“abc”和年龄:26

预期输出:名称:“abcmodified”和用户数:26

如何在java中解析和修改字符串格式的lucene查询?

最佳答案

您是否尝试过查看org.apache.lucene.queryparser.classic.QueryParser?它具有从输入字符串返回 Lucene 查询对象的功能。例如:

String rawQuery = "name:abc AND age:26";
QueryParser parser = new QueryParser(Version.LUCENE_45, null, new WhitespaceAnalyzer(Version.LUCENE_45));
BooleanQuery query = (BooleanQuery) praser.parse(rawQuery);
query.clauses().get(0).setQuery(new TermQuery(new Term("name", "abcmodified")));
query.clauses().get(1).setQuery(new TermQuery(new Term("userage", "26")));
System.out.println(query);

将打印 +name:abcmodified +userage:26,这基本上就是您想要的。显然,您可以使用递归方法进行更智能的处理,该方法根据查询类型( boolean 、前缀、术语、模糊等...)遍历查询

希望这有帮助!

关于java - Lucene查询修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47631368/

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