[英]Why is filter not working with text/string values in Lucene.Net?
我在Lucene.Net中進行了篩選,以限制搜索結果。 我遇到一個非常奇怪的問題。 篩選器不適用於“文本值”,但適用於數字值。
例如:
如果我使用數字值進行過濾,如下所示。 運行良好。
String field = "id";
Filter LE= new QueryWrapperFilter(new TermQuery( new Term(field, "1234567")));
indexSearcher.Search(QueryMaker(searchString, searchfields), LE, coll);
但是,如果我給出一個包含Text的值
String field = "id";
Filter LE = new QueryWrapperFilter(new TermQuery(new Term(field, "ZZZOCB9X9Y")));
indexSearcher.Search(QueryMaker(searchString, searchfields), LE, coll);
它失敗了。 結果不顯示任何記錄。
有人可以向我解釋這個問題。 另外,我對此進行了無數次測試以得出這一結論。 我已經在一些論壇上閱讀到,Lucene 3以下版本的術語查詢可能會出現此問題。 但是,我將版本更改為3.0.3,但錯誤仍然存在。 我非常需要程序中的過濾器才能工作。 否則,我將不得不離開Lucene並找到其他東西。
StandardAnalyzer
將小寫TokenStream
所有字符。
嘗試這個:
Filter LE = new QueryWrapperFilter(new TermQuery(new Term(field, "ZZZOCB9X9Y".ToLowerInvariant())));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.