0

我只是想知道是否有办法将纯动态 Lucene 语法查询(包括用布尔运算符分隔的字段:值对)传递给 QueryParser。查询将在运行时确定(可能使用自定义查询构建器)。由于 QueryParser 在实例化时需要一个字符串(默认字段名称)和一个分析器,所以我不知道如何使用代码。

对此的任何帮助将不胜感激。

4

1 回答 1

0

我有点困惑。听起来你在问你是否可以使用 QueryParser 来完成它的设计目的......

对于一些解释,分析器在必要时在文本中查找术语,这StandardAnalyzer是一个很好的起点。默认字段就是这样,当您不为术语提供字段时,它会使用此处传入的字段。查询语法文档中涵盖了没有指定字段的搜索词的情况。

这是 QueryParser 的一个相当典型的用法:

Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_43);
QueryParser parser = new QueryParser(Version.LUCENE_43, "myText", analyzer);
Query myQuery = parser.parse("My well-formed query");
于 2013-09-10T17:48:25.863 回答