Lucene 简单入门
2018-02-05 17:00
232 查看
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。
关于 Lucene 内置的分词器介绍:
1.WhitespaceAnalyzer 仅仅去除空格,不支持中文
2.SimpleAnalyzer 首先通过非字母字符分割文本信息,然后单词统一为小写,去除数字字符
3.StopAnalyzer 在SimpleAnalyzer的基础上增加了去除英文常用词,如the a 。。。
4.StandardAnalyzer 支持中文采用的方法为单词切分,去掉停止词和标点符号
关于搜索:
不写的话默认是或关系, +代表必须出现 -代表必须不能出现
from java.nio.file import Paths import sys,os,lucene from org.apache.lucene.store import SimpleFSDirectory from org.apache.lucene.index import DirectoryReader from org.apache.lucene.search import IndexSearcher from org.apache.lucene.analysis.core import WhitespaceAnalyzer #分词器 from org.apache.lucene.queryparser.classic import QueryParser #查询表达式 lucene.initVM() #初始化 chat_directory_path = Paths.get(os.path.join(curdir,"xxx")) #返回一个路径,在该路径下建立索引文件 chat_directory = SimpleFSDirectory(chat_directory_path) chat_search = IndexSearcher(DirectoryReader.open(chat_directory)) analyzer = WhitespaceAnalyzer() #使用查询 qc = "post:(+我 是 +谁)" #在索引文件搜索包含 “我” “谁”的句子 query = QueryParser("contents",analyzer).parse(qc) o = chat_search.search(query,5).scoreDocs for z in o: doc = chat_search.doc(z.doc) print "id:%s" %doc.get("id") print "score:%s" %doc.get("score") print "post:%s" %doc.get("post") #检索匹配的内容
关于 Lucene 内置的分词器介绍:
1.WhitespaceAnalyzer 仅仅去除空格,不支持中文
2.SimpleAnalyzer 首先通过非字母字符分割文本信息,然后单词统一为小写,去除数字字符
3.StopAnalyzer 在SimpleAnalyzer的基础上增加了去除英文常用词,如the a 。。。
4.StandardAnalyzer 支持中文采用的方法为单词切分,去掉停止词和标点符号
关于搜索:
不写的话默认是或关系, +代表必须出现 -代表必须不能出现
相关文章推荐
- Lucene 简单入门
- Lucene 简单入门
- lucene简单的入门程序
- Lucene.NET使用入门(二)【简单的搜索网站示例】
- Lucene 简单入门
- JAVA:lucene 入门学习,简单实例模访google搜索
- lucene简单入门demo
- Lucene 简单入门
- Lucene 简单入门
- lucene第一步--简单的入门demo
- Lucene2.9.2 + 盘古分词2.3.1(一) 入门: 建立简单索引,搜索(原创)
- Lucene 简单入门
- Lucene 简单入门
- lucene入门简单实现
- Lucene 简单入门
- Lucene 简单入门
- Lucene简单入门
- lucene入门-简单的WEB搜索界面
- lucene简单入门
- Lucene 简单入门