解决方案 »

  1.   


    isearcher = new IndexSearcher(ireader);
    System.out.println(isearcher.doc(0).get(fieldName));
    这样可以把text内容打印出来, 说明数据已经索引了, 但是isearcher.search(query, 5); 却查询不到! 
    我猜想不是中文分词不正确的原因, 因为当我查询英文的时候也一样的结果。 甚至把分词器换为StandardAnalyzer后 也同样查询不到数据,不管中文还是英文
      

  2.   

    doc.add(new StringField(fieldName, text, Field.Store.YES));
    替换为
    doc.add(new Field(fieldName, text, Field.Store.YES, Index.ANALYZED));
      

  3.   

    lucene4.9 StringField默认不分词
    document.add(new StringField("name", user.getName(), Store.YES));
    改成
    document.add(new TextField("name", user.getName(), Store.YES));
     
    TextField默认分词