我是Lucene Search的新手,
我以像
这样的方式合并了DrillDownQuery和Boolean QueryBooleanQuery inner=new BooleanQuery();
inner.add(NumericRangeQuery.newIntRange("year",null,null, false, false));
DrillDownQuery q = new DrillDownQuery(config);
q.add("book","lucene in action","lissa" );
inner.add(q,Occur.MUST)
DrillDownQuery q1 = new DrillDownQuery(config);
q1.add("book","java programming","hills publications" );
inner.add(q1,Occur.MUST)
我只想将上面的Query作为字符串存储在数据库中 所以我可以使用它
String str=inner.toString();
str变量包含这种类型的值
++ConstantScore($facets:booklucene in actionlissa)^0.0 ++ConstantScore($facets:bookjava programminghills publications)^0.0 +year:{* TO *}
就像将来任何用户点击链接一样,我只想从数据库中获取此字符串查询并获取解析到Lucene Query
为此目的,我使用了大量的解析器但是无法解析这种类型的查询。我正在使用的一些解析器在这里
QueryParser qs=new QueryParser(null,new WhitespaceAnalyzer());
Query q= qs.parse(str)
我也使用ComplexPhraseQueryParser,SimpleParser但是我还没有得到正确的结果
任何形式的帮助都会非常感激