首页 > 代码库 > Lucene搜索引擎入门写法
Lucene搜索引擎入门写法
需要的jar包:
<dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId> <version>${lucene-version}</version> </dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-analyzers-common</artifactId> <version>${lucene-version}</version> </dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-queryparser</artifactId> <version>${lucene-version}</version> </dependency>
其中: <lucene-version>4.10.2</lucene-version>
package com.power.lencene; import java.io.File; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.document.FieldType; import org.apache.lucene.index.DirectoryReader; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.queryparser.classic.MultiFieldQueryParser; import org.apache.lucene.queryparser.classic.QueryParser; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.ScoreDoc; import org.apache.lucene.search.Sort; import org.apache.lucene.search.TopDocs; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; import org.apache.lucene.util.Version; /* 作者Gary Huang 博客地址 :http://blog.csdn.net/hfmbook 邮箱:834865081@qq.com**/ public class LenceneDemo { static String path = "d:/lencene" ; public static void main(String[] args) { try { String keyword = "文字Score" ; Analyzer analyzer = new StandardAnalyzer(); Directory directory = FSDirectory.open(new File(path)) ; IndexReader indexReader = DirectoryReader.open(directory) ; IndexSearcher indexSearcher = new IndexSearcher(indexReader); QueryParser queryParser = new MultiFieldQueryParser(new String[] { "content" },analyzer); Query query = queryParser.parse(keyword); Sort sort = new Sort() ; TopDocs topDocs = indexSearcher.search(query, 5 , sort); ScoreDoc[] scoreDoces = topDocs.scoreDocs; for(ScoreDoc scoreDoc : scoreDoces){ int docID = scoreDoc.doc ; Document document = indexSearcher.doc(docID); System.out.println( document.get("id") ) ; System.out.println( document.get("content") ) ; } indexReader.close(); } catch (Exception e) { e.printStackTrace(); } } public static void writeIndex(){ try { Analyzer analyzer = new StandardAnalyzer(); IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LATEST, analyzer); Directory directory = FSDirectory.open(new File(path)) ; IndexWriter iwriter = new IndexWriter(directory, indexWriterConfig) ; Document doc = new Document(); FieldType fieldType = new FieldType(); fieldType.setIndexed(true); fieldType.setStored(true); doc.add(new Field("id", "1", fieldType ) ) ; doc.add(new Field("content", "Lucene文字这个相关度排序是基于内部的Score和DocID,Score又基于关键词的内部评分和做索引时的boost。默认Score高的排前面,如果Score一样,.”", fieldType)); iwriter.addDocument(doc); iwriter.close() ; } catch (Exception e) { e.printStackTrace(); } } }
Lucene搜索引擎入门写法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。