lucene创建索引中的构造函数IndexWriter(String path, Analyzer a, boolean create, IndexWriter.MaxFieldLength mfl) ,这里的boolean create参数的意思并非是否创建索引,而是覆盖还是追加的意思。原文见官方文档:create - true to create the index or overwrite the existing one; false to append to the existing index
引用
create - true to create the index or overwrite the existing one; false to append to the existing index
true:创建新的索引或者覆盖现有索引
false:追加索引到现有索引。
所以。当该参数为false,而所以目录下由不存在索引的时候,便会产生该异常。
引用
java.io.FileNotFoundException: no segments* file found in org.apache.lucene.store.FSDirectory@.....
解决方法:
在new IndexSearcher(path); 前面加一句
IndexWriter writer = new IndexWriter(path, new StandardAnalyzer(), true);
分享到:
相关推荐
IndexSearcher searcher = new IndexSearcher(reader); ``` 2. 编写查询语句,这里使用`QueryParser`: ```java QueryParser parser = new QueryParser("field", new StandardAnalyzer()); Query query = ...
一步一步跟我学习lucene是对近期做lucene索引的总结,大家有问题的话联系本人的Q-Q: 891922381,同时本人新建Q-Q群:106570134(lucene,solr,netty,hadoop),如蒙加入,不胜感激,大家共同探讨,本人争取每日一博,...
IndexSearcher indexSearcher = new IndexSearcher("c:\\\\index"); QueryParser queryParser = new QueryParser("file", new StandardAnalyzer()); Query query = queryParser.parse("搜索关键词"); Hits hits ...
indexsearcher searcher = new indexsearcher(reader); hits hits = searcher.search(query); ``` 在上面的代码中,我们使用MultifieldQueryParser来解析查询语句,并将其应用于多个字段中。这样,我们就可以基于多...
通过`new IndexSearcher(directory)`,我们可以创建一个`IndexSearcher`实例,这里的`directory`是`FSDirectory`类型的,表示索引在磁盘上的存储位置。`IndexSearcher`以只读模式打开索引,允许多个实例同时操作同一...
IndexSearcher searcher = new IndexSearcher(FSDirectory.Open(new System.IO.DirectoryInfo(IndexPath)), true); // 获取文档总数 int count = searcher.MaxDoc(); // 创建文档并添加到索引中 Document doc = new...
IndexSearcher indexSearcher = new IndexSearcher(directory); QueryParser queryParser = new QueryParser(Version.LUCENE_43, "title", analyzer); Query query = queryParser.parse("搜索关键字"); TopDocs ...
// QueryParser parser = new MultiFieldQueryParser(Version.LUCENE_CURRENT, new String[]{"path", "contents"}, analyzer); // Query query = parser.parse(keyword); isearcher = new IndexSearcher...
IndexSearcher searcher = new IndexSearcher("d:\\index"); Analyzer analyzer = new StandardAnalyzer(); //创建一个Analyzer接口的一个实例类StandardAnalyzer QueryParser qp = new QueryParser(...
IndexSearcher searcher = new IndexSearcher(reader); ``` `IndexSearcher`会利用`reader`中的信息,为高效检索提供便利。 在搜索之前,通常需要声明一个`QueryParser`,用于处理用户输入的查询语句: ```java ...
Path path = new Path("/path/to/file/on/hdfs"); ``` 2. 使用`FileSplit`将文件分成多个部分,然后在每个`MapReduce`任务中处理一部分。 3. 在`Mapper`阶段,读取每个分片的内容,创建`Document`对象,并添加到`...
3. **构建Query**:使用QueryParser或者直接创建Query对象,如`new TermQuery(new Term("field", "query term"))`。 4. **执行查询**:使用`indexSearcher.search(query, n)`执行查询,其中n是返回结果的最大数量。...
IndexSearcher searcher = new IndexSearcher(reader); ``` 4. **创建搜索的Query** - 通过`QueryParser`来构建查询。 ```java QueryParser parser = new QueryParser(Version.LUCENE_36, "content", new ...
IndexSearcher searcher = new IndexSearcher(reader); // 创建查询 Query query = new TermQuery(new Term("content", "测试")); // 执行查询 TopDocs topDocs = searcher.search(query, 10); for ...
IndexSearcher searcher = new IndexSearcher(reader); // 用户输入查询 String queryStr = "搜索关键词"; Analyzer analyzer = new StandardAnalyzer(); QueryParser parser = new QueryParser("content", ...
IndexSearcher searcher = new IndexSearcher(DirectoryReader.open(indexDir)); TopDocs results = searcher.search(query, 10); ``` 这段代码将返回匹配“search term”的前10个文档。 4. 分析器的作用 分析...
try (IndexSearcher searcher = new IndexSearcher(DirectoryReader.open(directory))) { TopDocs topDocs = searcher.search(query, 10); for (ScoreDoc scoreDoc : topDocs.scoreDocs) { Document doc = ...
IndexSearcher searcher = new IndexSearcher(reader); QueryParser parser = new QueryParser("title", analyzer); Query query = parser.parse("入门"); TopDocs topDocs = searcher.search(query, 10); ``` 8. *...
IndexSearcher searcher = new IndexSearcher(reader); Query query = new QueryParser(LuceneVersion.LUCENE_33, "title", new IKAnalyzer()).parse("搜索关键词"); TopDocs docs = searcher.search(query, 10); ``...
try (IndexSearcher searcher = new IndexSearcher(reader)) { TopDocs topDocs = searcher.search(query, 10); for (ScoreDoc scoreDoc : topDocs.scoreDocs) { Document resultDoc = searcher.doc(scoreDoc.doc...