Lucene 4.2分析器在索引字段时

Lucene 4.2分析器在索引字段时,lucene,indexing,field,analyzer,Lucene,Indexing,Field,Analyzer,我正在尝试使用Lucene 4.2为一组文档编制索引。我创建了一个自定义分析器,它不进行标记化,也不将术语小写,代码如下: public class NoTokenAnalyzer extends Analyzer{ public Version matchVersion; public NoTokenAnalyzer(Version matchVersion){ this.matchVersion=matchVersion; } @Override protected Tok

我正在尝试使用Lucene 4.2为一组文档编制索引。我创建了一个自定义分析器,它不进行标记化,也不将术语小写,代码如下:

     public class NoTokenAnalyzer extends Analyzer{
public Version matchVersion;
public NoTokenAnalyzer(Version matchVersion){
    this.matchVersion=matchVersion;
}
@Override
protected TokenStreamComponents createComponents(String fieldName, Reader reader) {
    // TODO Auto-generated method stub
    //final Tokenizer source = new NoTokenTokenizer(matchVersion, reader);
    final KeywordTokenizer source=new KeywordTokenizer(reader);
    TokenStream result = new LowerCaseFilter(matchVersion, source);
    return new TokenStreamComponents(source, result);

}
}

我使用分析器构建索引(受Lucene文档中提供的代码启发):

代码的问题是索引字段没有标记化,但它们也没有小写,即,在索引期间似乎没有应用分析器。
我不知道怎么了?如何使分析仪工作

代码工作正常。因此,它可以帮助用户在Lucene 4.2中创建自定义分析器,并将其用于索引和搜索。

代码工作正常。因此,它可能有助于在Lucene 4.2中创建自定义分析器,并使用它进行索引和搜索

    public static void IndexFile(Analyzer analyzer) throws IOException{
    boolean create=true;



String directoryPath="path";
File folderToIndex=new File(directoryPath);
File[]filesToIndex=folderToIndex.listFiles();

Directory directory=FSDirectory.open(new File("index path"));

IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_42, analyzer);

      if (create) {
        // Create a new index in the directory, removing any
        // previously indexed documents:
        iwc.setOpenMode(OpenMode.CREATE);
     } else {
        // Add new documents to an existing index:
        iwc.setOpenMode(OpenMode.CREATE_OR_APPEND);
      }

      IndexWriter writer = new IndexWriter(directory, iwc);
for (final File singleFile : filesToIndex) {


//process files in the directory and extract strings to index
    //..........
    String field1;
    String field2;

     //index fields

      Document doc=new Document();


     Field f1Field= new Field("f1", field1, TextField.TYPE_STORED);


      doc.add(f1Field);
      doc.add(new Field("f2", field2, TextField.TYPE_STORED));  
      }
writer.close();
   }