V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
HiShan
V2EX  ›  问与答

Java 中 Lucene 7.2.1 版本 为什么使用 QueryParser 无法查询到数据,求大佬帮助小白 T _ T

  •  
  •   HiShan · 2018-02-12 21:47:02 +08:00 · 1633 次点击
    这是一个创建于 2280 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问代码:

    
        RAMDirectory dir = new RAMDirectory();
    
        public static IndexReader indexReader;
    
        public void createIndex() {
            try {
                Analyzer analyzer = new StandardAnalyzer(); //分词器(有简体中文分词器)
                IndexWriter indexWriter = new IndexWriter(dir, new IndexWriterConfig(analyzer));
                Document doc = new Document();
                Document doc1 = new Document();
                Document doc2 = new Document();
                Document doc3 = new Document();
                FieldType fieldType = new FieldType();
                fieldType.setStored(true);
                doc.add(new Field("bookName", "lucene1", fieldType));
                doc1.add(new Field("bookName", "lucene2", fieldType));
                doc2.add(new Field("bookName", "lucene3", fieldType));
                doc3.add(new Field("bookName", "lucene4", fieldType));
                indexWriter.addDocument(doc);
                indexWriter.addDocument(doc1);
                indexWriter.addDocument(doc2);
                indexWriter.addDocument(doc3);
                indexWriter.close();
    
                IndexReader reader = DirectoryReader.open(dir);
                for (int i = 0; i < reader.numDocs(); i++) {
                    System.out.println(reader.document(i).toString());
                }
    
                IndexSearcher searcher = new IndexSearcher(reader);
    
                QueryParser parser = new QueryParser("bookName", analyzer);
                Query query = parser.parse("lucene");
                TopDocs docs = searcher.search(query, 100);
                System.out.println("hit : " + docs.totalHits);
            } catch (IOException | ParseException e) {
                e.printStackTrace();
            }
        }
    
        public static void main(String[] args) {
            CreateRAMIndex s = new CreateRAMIndex();
            s.createIndex();
    
        }
    } ```
    
    但是为什么我使用其他的 Query 就可以比如 FuzzyQuery 就可以。网上资料都查看的差不多了,没什么作用,大部分都是好老的版本了。。Demo 也看了。都一样的啊 为什么我这个就查询不到一点东西呢?
    
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   930 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:45 · PVG 05:45 · LAX 14:45 · JFK 17:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.