2013-02-06 191 views
0

我使用StandardAnlyzer對索引字段進行索引,從輸入字符串中刪除標點符號。我的輸入字符串中包含特殊字符,如@#-在lucene中索引和搜索特殊字符(如'@','#')

例如:The索引的數據可以由用戶標識一樣值:[email protected]ABC#DF

我試圖更新通過BooleanQuery uesrid指數:[email protected]使用writer.updateDocuments(Term,document);

使用上面的查詢刪除所有與[email protected] .IE開始的值刪除當前indexex刪除使用writer.deletedocuments(query); 和更新索引以前的文件,該文件s的用戶ID值爲[email protected],[email protected]等也被刪除。

任何人都可以建議索引和更新包含上述特殊字符的特定文檔的解決方案。

任何suggession高度讚賞。

預先感謝。

Chakradhar

回答

1

最好的辦法可能是使用KeywordAnalyzer索引你的userid場,然後用IndexWriter.deleteDocuments(Term)刪除文件。

+0

謝謝您寶貴的意見。我將userid字段編入NOT_ANALYZED,並使用KetWordAnalyzer搜索該術語。它的工作。 – Chakri

+0

酷!你能將答案標記爲已接受嗎? – jpountz

+0

當我使用KeyWordAnalyzer搜索索引時,soultion有效。有沒有辦法使用StandardAnalyzer將userid字段編入索引,並仍然使用keyWordAnalyzer或任何其他用於索引特殊字符的分析器來搜索索引 – Chakri