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

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

发布时间: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变量中,然后再在这个网页中将你需要的内容拿出来就可以了。

阅读全文

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

热点内容
prcs4视频导出后找不到文件 浏览:977
msp430系列单片机实用c语言程序设计 浏览:423
移动硬盘的文件格式 浏览:904
文件本地路径与云路径 浏览:103
进大白菜找不到系统文件 浏览:380
ug装配体找不到文件部件已删除 浏览:629
小网站怎么弄出来 浏览:649
jsp表单加参数 浏览:607
苹果5s手机老是卡屏 浏览:58
js给php变量赋值 浏览:446
杂志版本号是什么意思 浏览:223
地图特效代码 浏览:192
去除思科配置文件中的号 浏览:196
运行的16位程序太多 浏览:1
苹果mac用什么软件好学编程 浏览:681
ai中线段怎么添加宽度配置文件 浏览:956
lol文件怎么找不到game 浏览:142
aecc视频教程 浏览:983
linux怎么查看数据库用户名 浏览:182
cefs文件系统 浏览:404

友情链接