导航:首页 > 编程语言 > java开发搜索引擎

java开发搜索引擎

发布时间:2023-03-08 05:20:19

1. java 搜索引擎

用lucene检索包,很强大。到官网下一个最新版本就可以进行二次开发。
至于中文支持,可以使用流行的中文分词包,建议用用paoding。

2. 在javaweb开发中怎么使用外部搜索引擎

你可以在代码里访问,然后把结果解析一下再放到页面上

try{
StringurlStr=
你要搜的东西;
urlStr=URLEncoder.encode(urlStr);//URL有中文需要转码
URLurl=newURL(urlStr);
URLConnectionurlConnection=url.openConnection();
BufferedReaderbr=newBufferedReader(newInputStreamReader(urlConnection.getInputStream(),"UTF-8"));
Stringstr=br.readLine();
System.out.println(str);
}catch(Exceptione){
e.printStackTrace();
}

3. 怎么用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页面点击“创建索引”对该模块的数据进行索引的建立,建立完成后便可以进行查询。

4. 有没有java 开源的简单搜索引擎

被邀请回答这个问题,但是似乎问错人了,问的是开源的搜索引擎,但是很抱歉,我对此领域并不熟悉。

我所知道的搜索引擎方案仅有:

1. Nutch (http://nutch.apache.org/)

2. Datapark search http://www.dataparksearch.org/

以下列表不是一个完整的搜索引擎方案,一般都不包括爬虫,确切的说是IR或者全文检索引擎更为恰当:
1. Zettair http://www.seg.rmit.e.au/zettair/
2. Indri http://www.lemurproject.org/indri/
3. Terrier http://terrier.org/
4. Galago http://www.galagosearch.org/
5. Zebra https://www.indexdata.com/zebra

6. Lucene 及其变种

5. 用Java如何实现站内搜索

1,使用lucene
2. 使用solr
3. 使用sphinx
4. 低效率使用sql like

6. java可以开发搜索引擎吗

有,但不推荐。

如果想尝试一下可以参考 @奇迹降临pan 的答案

理由如下:

  1. 明确你需要的是哪种的。

  2. 数学功底/算法基础(庞大的搜索引擎建立在可靠的算法基础上)

  3. 消耗/功耗

阅读全文

与java开发搜索引擎相关的资料

热点内容
不许宣读命令 浏览:698
寻找信号源源码 浏览:81
打电话老服务器错误是什么原因 浏览:491
三维溯源码 浏览:716
android录音开源 浏览:459
弗洛伊德算法c 浏览:12
udp命令字 浏览:661
app服务端java源码 浏览:798
电脑用文件夹玩大型游戏 浏览:254
安卓耳塞失灵怎么办 浏览:765
华三交换机保存命令 浏览:605
命令方块怎么调键盘 浏览:841
不把密码存在服务器上怎么办 浏览:398
怎么让指令方块的命令消失 浏览:543
用单片机做plc 浏览:404
云服务器进入子目录命令 浏览:795
服务器机柜如何配电 浏览:578
怎么删除iphone资源库里的app 浏览:940
pdf鱼 浏览:648
单片机pcf8591什么作用 浏览:805