我只是想知道是否有办法传递纯动态Lucene语法查询,包括用布尔运算符分隔的字段:值对到QueryParser。查询将在运行时确定(可能使用自定义查询构建器)。由于QueryParser在实例化时需要String(默认字段名称)和分析器,因此我不知道如何使用该代码。
任何有关这方面的帮助都会很有意义。
答案 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");