将完整的动态lucene查询语法传递给QueryParser

时间:2013-09-10 16:47:15

标签: lucene

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

任何有关这方面的帮助都会很有意义。

1 个答案:

答案 0 :(得分:0)

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

对于一些解释,分析器在必要时在文本中查找术语,StandardAnalyzer是一个很好的起点。默认字段就是这样,当你没有为一个术语提供一个字段时,它会使用这里传递的字段。 query syntax docs

中介绍了没有指定字段的搜索字词

以下是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");