0
我已經在Apache Lucene中將QueryParser分類爲將我的模型類中的輸入字段名稱(用戶reuqest)更改爲相應的字段名稱。Lucene自定義QueryParser沒有結果
public class QueryParserMoney extends QueryParser {
public QueryParserMoney(Version matchVersion, String f, Analyzer a) {
super(matchVersion, f, a);
}
@Override
protected Query newTermQuery(Term term) {
if (term.field() == "money") {
PaddedIntegerBridge pB = new PaddedIntegerBridge();
TermRangeQuery trq = new TermRangeQuery("moneyTo",
pB.objectToString(Integer.parseInt(term.text())), "*",
true, true);
return trq;
}
return super.newTermQuery(term);
}
輸入查詢是像money:5000
,我將其更改爲moneyTo:[5000 TO *]
生成的查詢就OK了,我檢查與盧克的查詢,但在Java中我有0的結果。
你有什麼建議,我錯了嗎?
但爲什麼生成的查詢在Luke中正常工作? 和moneyTo是數字字段 – adaniluk
我今天早上嘗試一下你的建議,如果它能工作,我會給出迴應 – adaniluk
你在Luke中使用QueryParser的子類,而不是內置的/默認的QueryParser嗎? –