pylucene构建索引_GitHub - riokaa/SduViewWebSpider: 【信息检索课程设计】sdu新闻网站全站爬取+索引构建+搜索引擎...

README

信息检索课程设计sdu视点新闻全站爬虫爬取+索引构建+搜索引擎查询练习程序(1805)。

爬虫功能使用Python的scrapy库实现,并用MongoDB数据库进行存储。

索引构建和搜索功能用Python的Whoosh和jieba库实现。(由于lucene是java库,所以pyLucene库的安装极其麻烦,因此选用Python原生库Whoosh实现,并使用jieba进行中文分词。)

搜索网页界面用django实现,页面模板套用BootCDN。

1 要求

以下是检索的基本要求:可以利用lucene、nutch等开源工具,利用Python、Java等编程语言,但需要分别演示并说明原理。

Web网页信息抽取

以山东大学新闻网为起点进行网页的循环爬取,保持爬虫在view.sdu.edu.cn之内(即只爬取这个站点的网页),爬取的网页数量越多越好。

索引构建

对上一步爬取到的网页进行结构化预处理,包括基于模板的信息抽取、分字段解析、分词、构建索引等。

检索排序

对上一步构建的索引库进行查询,对于给定的查询,给出检索结果,明白排序的原理及方法。

2 运行方式

运行sduspider/run.py来进行网络爬虫,这个过程将持续十多个小时,但可以随时终止,在下次运行时继续。

运行indexbuilder/index_builder.py来对数据库中的72000条数据构建索引,该过程将持续几个小时,但可以随时终止。

如果不熟悉Whoosh库的构建索引和query搜索功能,可以参考运行indexbuilder/sample.py。

运行indexbuilder/query.py来测试搜索功能。

运行searchengine/run_server.py打开搜索网页服务器,在浏览器中打开127.0.0.1:8000进入搜索页面执行搜索。

3 所需python库

scrapy

requests

pymongo

whoosh

jieba

django

4 所需数据库

MongoDB

Mongo Management Studio 可视化工具(可选)

5 爬虫特性

爬虫代码位于sduspider/目录下。

5.1 爬取内容

Item

Item name

标题

newsTitle

链接

newsUrl

阅读量

newsCliek

发布时间

newsPublishTime

文章内容

newsContent

# spider.py

# 爬取当前网页

print('start parse : ' + response.url)

self.destination_list.remove(response.url)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要为文本添加全文索引,可以使用Python的PyLucene库。PyLucene是Lucene搜索引擎的Python绑定,它可以在Python中使用Lucene的各种功能。 以下是一个使用PyLucene为文本添加全文索引的示例代码: ```python import lucene from java.io import StringReader from org.apache.lucene.analysis.standard import StandardAnalyzer from org.apache.lucene.document import Document, Field, FieldType from org.apache.lucene.index import IndexWriter, IndexWriterConfig from org.apache.lucene.store import SimpleFSDirectory from org.apache.lucene.util import Version # 初始化Lucene lucene.initVM() # 创建分析器 analyzer = StandardAnalyzer(Version.LUCENE_CURRENT) # 设置字段类型 field_type = FieldType() field_type.setIndexed(True) field_type.setStored(True) field_type.setTokenized(True) # 创建索引目录 index_dir = SimpleFSDirectory(File("index/")) # 创建索引写入器 config = IndexWriterConfig(Version.LUCENE_CURRENT, analyzer) writer = IndexWriter(index_dir, config) # 添加文档到索引 doc = Document() doc.add(Field("content", StringReader("This is some sample text."), field_type)) writer.addDocument(doc) # 提交索引 writer.commit() ``` 在这个示例中,我们首先初始化了PyLucene。然后,我们创建了一个标准分析器,该分析器将文本拆分成单词。接下来,我们设置了文档字段的类型,该字段将被索引、存储和分词。然后,我们创建了一个索引目录,用于存储索引数据。接下来,我们创建了一个索引写入器,并将一个文档添加到索引中。最后,我们提交了索引。 这是一个简单的示例,你可以根据你的需求修改代码来实现更复杂的全文索引功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值