2010-10-12 21 views

回答

2

編寫自定義Analyzer,要麼這些拆分成多個令牌(JRB1000;相對容易和寬容到用戶)或它們連接成一個單一的令牌(JRB1000;硬但精確)。實現您自己的Analyzer相當於覆蓋現有參數中的tokenStream參數,並可能編寫自定義TokenFilter類。

對正在建立索引和查詢的文檔應用新的Analyzer

(鏈接是爲Java版本,但.NET應該是相似的。)

+0

如果你的分析只是刪除空格和破折號,然後用剩下的令牌,它可能就足夠了。 – 2010-10-13 07:01:04

+0

「刪除空格」是指默認行爲(不起作用)或將所有內容視爲一個標記。這是'JRB1000' - >'JRB 1000'的情況,反之亦然,這造成了麻煩。 (除非部件號是單獨的字段?) – 2010-10-13 08:10:55

+0

是部件號是一個單獨的字段。我設法獲得這主要與自定義分析器和標記器,刪除空格和破折號並使用結果作爲標記。這在搜索JRB1000時起作用,但是,儘管將自定義分析器傳遞給QueryParser,但它在搜索「JRB 1000」時仍然不起作用。我開始認爲Lucene可能不是這裏工作的正確工具,如果它所做的只是剝離索引中的空格和破折號,並且查詢我可以通過向我的數據庫添加查找表來輕鬆完成此操作。 – ChrisR 2010-10-13 12:26:48

相關問題