【发布时间】:2011-11-16 02:15:40
【问题描述】:
我想要一个简单的功能,将整个用户查询与索引数据相匹配,并且只返回完全匹配的内容。我知道我们可以在双引号内给出查询。但由于该实用程序将在我们的应用程序中广泛使用,因此我设计了一个自定义解析器组件,该组件将为用户输入的查询创建一个短语查询(就像 solr 在双引号内给出查询时所做的那样)。
但在这种情况下,我无法获得任何匹配的文档。
代码是:
public Query parse() throws ParseException {
PhraseQuery pq = new PhraseQuery();
String qf = params.get("qf",getReq().getSchema().getDefaultSearchFieldName());
String query = getString();
if(query == null){
return pq;
}
String[] queryTerms = query.split("[ ?<>,/?\\()*!@#$%^&_+=|{}'`~;:\"-.]");
for(String queryTerm : queryTerms){
pq.add(new Term(qf,queryTerm.toLowerCase()));
}
return pq;
}
有什么建议吗???
【问题讨论】:
标签: solr