lucene6.0 查询语句设置关键字boost值
生活随笔
收集整理的這篇文章主要介紹了
lucene6.0 查询语句设置关键字boost值
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
代碼模板:
public class Demo {public static void main(String[] args) throws IOException, Exception {//建立索引String indexDirPath = util.Directory.GetAppPath("indexDir");Path path = Paths.get(indexDirPath);StandardAnalyzer analyzer = new StandardAnalyzer();IndexWriterConfig indexWriterConfig = new IndexWriterConfig(analyzer); // indexWriterConfig.setSimilarity(similarity);IndexWriter indexWriter = null;FSDirectory dir = null;try {dir = FSDirectory.open(path);indexWriter = new IndexWriter(dir, indexWriterConfig); ; } catch (IOException e) {e.printStackTrace();}Document doc1 = new Document();FieldType cntFieldAType = new FieldType();cntFieldAType.setIndexOptions(IndexOptions.DOCS_AND_FREQS);cntFieldAType.setStored(true);cntFieldAType.setTokenized(true);doc1.add(new Field("content", "common1 hello hello", cntFieldAType));indexWriter.addDocument(doc1);Document doc2 = new Document();doc2.add(new Field("content", "common2 common2 hello", cntFieldAType));indexWriter.addDocument(doc2);indexWriter.commit();//查詢索引 // QueryParser queryParser = new QueryParser("content", analyzer);IndexReader r = DirectoryReader.open(dir);IndexSearcher searcher = new IndexSearcher(r); // Query query = queryParser.parse("common1 common2");BoostQuery boostQuery = new BoostQuery(new TermQuery(new Term("content", "common1")), 1.5f);BoostQuery boostQuery2 = new BoostQuery(new TermQuery(new Term("content", "common2")), 1f);BooleanClause clause = new BooleanClause(boostQuery, Occur.SHOULD);BooleanClause clause2 = new BooleanClause(boostQuery2, Occur.SHOULD);Builder builder = new BooleanQuery.Builder();BooleanQuery q = builder.add(clause).add(clause2).build();TopDocs topDocs = searcher.search(q, 10);for(ScoreDoc doc : topDocs.scoreDocs) {System.out.println(searcher.doc(doc.doc));}}}?
總結(jié)
以上是生活随笔為你收集整理的lucene6.0 查询语句设置关键字boost值的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (优秀文章保存)Quartz优秀文章保存
- 下一篇: java几种遍历方式以及效率对比