导航:首页 > 编程知识 > 如何编程一个自动搜索软件

如何编程一个自动搜索软件

发布时间:2023-03-01 23:33:16

❶ 怎么用java 开发一个搜索引擎呀

一.创建索引

1.一般创建索引的核心步骤

(1).创建索引写入对象IndexWriter:

IndexWriter indexWriter = new IndexWriter(INDEX_STORE_PATH,new StandardAnalyzer(),create);

参数说明:INDEX_STORE_PATH:索引文件存放路径

new StandardAnalyzer():分词工具

create:此参数为Boolean型,true表示重新创建整个索引,false表示增量式创建索引。

(2).创建文档模型,并用IndexWriter对象写入

Document doc = new Document();

Field field1 = new Field(fieldName1, fieldValue ,Field.Store.YES, Field.Index.TOKENIZED);

doc.add(field1);

Field field2 = new Field(fieldName2, fieldValue ,Field.Store.YES, Field.Index.TOKENIZED);

doc.add(field2);

……

indexWriter.addDocument(doc);

indexWriter.close();

参数说明:

Document:负责搜集数据源,它可以从不同的物理文件提取数据并放入同一个Document中或从一个物理文件中提取出不同的数据并放入同一个Document中。

如下图所示

二.搜索索引

1.lucene搜索的核心步骤:

String[]fields={“title”,“summary”,……};//要查找的field范围

BooleanClause.Occur[]flags={BooleanClause.Occur.SHOULD, BooleanClause.Occur.MUST ,……};

Queryquery = MultiFieldQueryParser.parse(queryStr, fields,flags,new StandardAnalyzer());

Hitshits=newIndexSearcher(INDEX_STORE_PATH).search(query);

for (int i = 0;i < hitsLength ; i++)

{

Document doc = hits.doc(i);

String title = doc.get(“title”);

String summary = doc.get(“summary”);

//搜索出来的结果高亮显示在页面上

if (title != null) {

TokenStream tokenStream = analyzer.tokenStream(“title”,new StringReader(title));

String highlighterValue = highlighter.getBestFragment(tokenStream, title) ;

if(highlighterValue != null){

title = highlighterValue ;

}

//log.info("SearchHelper.search.title="+title);

}

if(summary!= null){

TokenStream tokenStream = analyzer.tokenStream(“summary”,new StringReader(summary));

String highlighterValue = highlighter.getBestFragment(tokenStream, creator) ;

if(highlighterValue != null){

summary = highlighterValue ;

}

//log.info("SearchHelper.search. summary ="+ summary);

}

}

2.结合平台构造搜索模块

PageData类用来存放检索结果集数据。

PageInfo类用来存放页面相关信息例如,PageData对象集合、总记录个数、每一页的记录数、总页面数量等等。

SearchHelper用来充当整个搜索模块的对外接口。

三.为平台组件添加索引的步骤(以知识中心为例)

1.在com.cscec.oa.searchengine.extend.mole目录下添加一个新的package

例如:com.cscec.oa.searchengine.extend.mole.resourcestore

2.在新的目录下建立data package并建立相应的数据类,并使这个数据类继承BeanData。

例如:

package com.cscec.oa.searchengine.extend.mole.resourcestore.data

public class ResourceStoreBeanData extends BeanData{

}

3.与data package同一级目录建立manager package并建立相应管理类,并使这个管理类继承BeanDataManager

例如:

com.cscec.oa.searchengine.extend.mole.resourcestore.manager

public class extends BeanDataManager{

}

4.以管理员的身份登陆OA后,在菜单中找到“索引模块管理”链接,将相应信息添加完成后,便可以在List页面点击“创建索引”对该模块的数据进行索引的建立,建立完成后便可以进行查询。

❷ java编程可以实现程序自动搜索百度某关键字然后获取结果吗

当然是可以的啊,用httpclient去模拟网页提交,会返回给你一个网页结果,也就是一个长的字符串,存放到java变量中,然后再在这个网页中将你需要的内容拿出来就可以了。

阅读全文

与如何编程一个自动搜索软件相关的资料

热点内容
ps3文件分割视频 浏览:280
微信图片一键转发软件 浏览:331
如何判断s200plc编程电缆 浏览:691
太原编程培训班哪个好 浏览:171
树叶吹奏教程 浏览:6
社交app带来了哪些社会问题 浏览:394
如何安装爱宝8800数据采集器 浏览:712
文件保存了怎么找不到了 浏览:476
彩票网站怎么辨真假 浏览:840
pr找不到该文件 浏览:963
java移除panel 浏览:354
jsp填充jsp 浏览:166
海关外贸大数据在哪里查 浏览:381
思特奇java笔试题 浏览:121
葫芦侠在手机中的文件名 浏览:813
plc编程应该怎么收钱 浏览:584
c语言中源文件由什么组成 浏览:890
linuxhttpdphp配置文件 浏览:607
拆单数据要怎么保存 浏览:17
mac电脑怎样压缩文件到100m 浏览:645

友情链接