2
A
回答
3
3
StandardAnalyzer
有一個maxTokenLength
屬性,你可以設置,我認爲它已經消除了數字開始的令牌。但是,如果您有更具體的需求,則需要製作自己的Analyzer
,並可能需要TokenFilter
。與Lucene的文檔相反,由於源於標記化過程的最高性能需求的不尋常的編碼模式,實現這些類並不是「直接的」。例如,沒有辦法通過擴展它來稍微修改StandardAnalyzer
的行爲,您必須從其中一個基類開始。如果您擴展了StandardAnalyzer,
相同的等級,您將創建一個可重複使用的分析儀,您必須格外小心以符合其合同。
因此,首先嚐試從現有過濾器中放置一個分析儀。例如,在Lucene核心中提供了LengthFilter
。如果失敗,請實施您自己的過濾器並將其構建到分析儀中。
這可以幫助你在執行這兩個過濾器和分析器開始:
public class MyFilter extends FilteringTokenFilter
{
private final CharTermAttribute termAtt = addAttribute(CharTermAttribute.class);
public MyFilter(TokenStream in) { super(false, in); }
protected boolean accept() {
final int len = termAtt.length();
final int d = termAtt.charAt(0) - '0':
return len >= 3 && len <= 20 && (d < 0 || d > 9);
}
}
public final class MyAnalyzer extends ReusableAnalyzerBase
{
@Override protected TokenStreamComponents createComponents(
String fieldName, Reader reader)
{
final Tokenizer source = new LowerCaseTokenizer(Version.LUCENE_35, reader);
return new TokenStreamComponents(source, new MyFilter(source));
}
}
相關問題
- 1. Lucene不索引文件中的一些術語
- 2. 刪除某些索引
- 3. Lucene索引 - 單個術語和短語查詢
- 4. 在Lucene索引中搜索特定術語
- 5. 如何在Lucene的某個範圍內搜索術語
- 6. Apache lucene倒排索引
- 7. Algolia - WordPress從索引中排除單個術語
- 8. Solr:排除某些HTML標記或僅包含索引內的某些標記
- 9. JavaScript RegEx排除某些詞/短語?
- 10. Lucene字符序列搜索術語
- 11. Lucene術語查詢
- 12. Lucene索引與語義
- 13. 如何使用Lucene索引和搜索多個術語和短語
- 14. 刪除lucene索引並重新索引
- 15. 我想閱讀我的索引與Lucene的單個術語
- 16. 如何在Lucene中索引文檔中的所有術語?
- 17. 將術語頻率添加到lucene索引
- 18. 在構建索引時提升Lucene術語
- 19. 如何計算lucene索引中每個文檔的術語數?
- 20. 如何從Lucene索引中獲取下一個術語?
- 21. 查找由Lucene索引的術語列表
- 22. 在lucene中沒有索引的計算術語向量4
- 23. 如何過濾/排除CGPoint數組中的某些索引
- 24. Аlgolia - WordPress - 排除索引中的某些網頁
- 25. 子集或從R中的索引排除某些元素?
- 26. Lucene刪除索引,Java
- 27. 在某些索引
- 28. 如何排除Solr/Lucene中的某些URL
- 29. 某些術語需要澄清
- 30. Lucene 5.3術語向量