本篇文章给大家分享的是有关利用Lucene如何实现布尔搜索功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。什么是luceneLucene是apache软件基金会jakarta
本篇文章给大家分享的是有关利用Lucene如何实现布尔搜索功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
什么是lucene
Lucene是apache软件基金会jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。
Lucene是一个全文搜索框架,而不是应用产品。因此它并不像www.baidu.com 或者Google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品。
在布尔查询的对象中,包含一个子句的集合,各个子句间都是如“与”、“或”这样的布尔逻辑。Lucene中所遇到的各种复杂查询,最终都可以表示成布尔型的查询。下面代码就是实现了一个简单的布尔查询。
package LuceneSearch; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.Term; import org.apache.lucene.search.BooleanClause; import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.Hits; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.TerMQuery; public class BooleanQueryTest { static final String INDEX_STORE_PATH = "E:\\编程局\\Java编程处\\Index\\"; public static void main(String[] args) { // TODO Auto-generated method stub try{ IndexWriter writer = new IndexWriter(INDEX_STORE_PATH,new StandardAnalyzer(),true); writer.setUseCompoundFile(false); //创建8个文档 Document doc1 = new Document(); Document doc2 = new Document(); Document doc3 = new Document(); Document doc4 = new Document(); Document doc5 = new Document(); Document doc6 = new Document(); Document doc7 = new Document(); Document doc8 = new Document(); Field f1 = new Field("bookname","钢铁是怎样炼成的",Field.Store.YES,Field.Index.TOKENIZED); Field f2 = new Field("bookname","英雄儿女",Field.Store.YES,Field.Index.TOKENIZED); Field f3 = new Field("bookname","浮生六记",Field.Store.YES,Field.Index.TOKENIZED); Field f4 = new Field("bookname","太平广记",Field.Store.YES,Field.Index.TOKENIZED); Field f5 = new Field("bookname","文化苦旅",Field.Store.YES,Field.Index.TOKENIZED); Field f6 = new Field("bookname","白夜行",Field.Store.YES,Field.Index.TOKENIZED); Field f7 = new Field("bookname","白毛女",Field.Store.YES,Field.Index.TOKENIZED); Field f8 = new Field("bookname","子不语",Field.Store.YES,Field.Index.TOKENIZED); doc1.add(f1); doc2.add(f2); doc3.add(f3); doc4.add(f4); doc5.add(f5); doc6.add(f6); doc7.add(f7); doc8.add(f8); writer.aDDDocument(doc1); writer.addDocument(doc2); writer.addDocument(doc3); writer.addDocument(doc4); writer.addDocument(doc5); writer.addDocument(doc6); writer.addDocument(doc7); writer.addDocument(doc8); writer.close(); System.out.println("创建索引成功"); IndexSearcher searcher = new IndexSearcher(INDEX_STORE_PATH); //创建两个词条对象 Term t1 = new Term("bookname","生"); Term t2 = new Term("bookname","记"); TermQuery q1 = new TermQuery(t1); TermQuery q2 = new TermQuery(t2); BooleanQuery query = new BooleanQuery(); query.add(q1,BooleanClause.Occur.MUST); query.add(q2,BooleanClause.Occur.MUST); Hits hits = searcher.search(query); for(int i = 0;i<hits.length();i++){ System.out.println(hits.doc(i)); } System.out.println("搜索成功"); }catch(Exception e){ System.out.println(e.getStackTrace()); } } }
--结束END--
本文标题: 利用Lucene如何实现布尔搜索功能
本文链接: https://www.lsjlt.com/news/227002.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
一口价域名售卖能注册吗?域名是网站的标识,简短且易于记忆,为在线用户提供了访问我们网站的简单路径。一口价是在域名交易中一种常见的模式,而这种通常是针对已经被注册的域名转售给其他人的一种方式。
一口价域名买卖的过程通常包括以下几个步骤:
1.寻找:买家需要在域名售卖平台上找到心仪的一口价域名。平台通常会为每个可售的域名提供详细的描述,包括价格、年龄、流
443px" 443px) https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294.jpg https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294-768x413.jpg 域名售卖 域名一口价售卖 游戏音频 赋值/切片 框架优势 评估指南 项目规模
0