导航:首页 > 编程语言 > lucenedemojava

lucenedemojava

发布时间:2025-04-24 23:54:15

1. java文件搜索引擎(java搜索功能)

java中搜索插件叫什么

Java中的搜索插件称为搜索引擎(SearchEngine),它是一种可以在网络上搜索内容的软件,可以帮助用户快速找到所需要的信息。搜索引擎使用爬虫来抓取网页中的内容,然后将网页内容组织成一个数据库,最后用户可以根据自己的需要使用搜索引擎检索相关信息。

Java中的搜索引擎有很多,其中最流行的搜索引擎包括Google、Bing、Yahoo、Bai等,它们都是大埋滑型的搜索引擎,可以搜索到全球各地的信息。此外,还有一些小型的搜索引擎,如DuckDuckGo、Yandex等,它们可以搜索到更加准确的信息,但是覆盖的范围较小。

Java中的搜索引擎可以帮助用户更加快捷的搜索到谈液袜所需要的信息,含激而且它们还可以根据用户的搜索关键词自动推荐更加准确的信息。另外,它们还可以搜索到网络上的视频、音乐等多媒体内容,以及新闻、图片等网络资源。

JAVA实现BAIDU的搜索功能

下列的程序实现了数岁橡据文件zip方式的压缩和解压缩方法。randomData()函数随机生成

50个double数据,并放在doc字符串变量中;openFile()函数读取ZIP压缩文件;saveFile()函数

将随机生成的数据存到ZIP格式的压缩文件中。

importjava.util.zip.*;

importjava.awt.event.*;

importjava.awt.*;

importjava.lang.Math;

importjava.io.*;

{

TextAreatextarea;‖显示数据文件的多行文本显示域

TextFieldinfotip;‖显示数据文件未压缩大小及压缩大小单行文本显示域

Stringdoc;‖存储随机生成的数据

longdoczipsize=0;‖压缩数据文件的大小

publicTestZip(){

‖生成菜单

乎慧旁MenuBarmenubar=newMenuBar();

setMenuBar(menubar);

Menufile=newMenu("File",true);

menubar.add(file);

MenuItemneww=newMenuItem("New");

neww.addActionListener(this);

file.add(neww);

MenuItemopen=newMenuItem("Open");

open.addActionListener(this);

file.add(open);

MenuItemsave=newMenuItem("Save");

save.addActionListener(this);

file.add(save);

MenuItemexit=newMenuItem("Exit");

exit.addActionListener(this);

file.add(exit);

‖随机生成的数据文件的多行文本显示域

add("Center",textarea=newTextArea());

碧衡‖提示文本原始大小、压缩大小的单行文本显示域

add("South",infotip=newTextField());

}

publicstaticvoidmain(Stringargs[]){

TestZipok=newTestZip();

希望采纳谢谢

java如何实现文件搜索功能

java实现文件搜索主要使用file类和正则表达式,如配没下示例:

package?com.kiritor.util;

import?java.io.File;

import?java.io.FileFilter;

import?java.util.Arrays;

import?java.util.Collections;

import?java.util.List;

/**

?*?文件的相关操作类

?*?

?*?@author?Kiritor

?*/

public?class?FileOperation?{

private?static?String?contentPath;

private?static?String?filePath;

private?static?File[]?fileList?=?null;//?保存文件列表,过滤掉目录

public?FileOperation()?{

}

/**?构造函数的参数是一个目录?*/

public?FileOperation(String?path)?{

File?file?=?new?File(path);

if?(file.isDirectory())

this.contentPath?=?path;

else

this.filePath?=?path;

}

????/**获取文件列表*/

public?static?File[]?getFiles()?{

if?(contentPath?==?null)?{

File?file?=?new?File(filePath);

fileList?=?new?File[1];

fileList[0]?=?file;

return?fileList;

}

fileList?=?new?悉橡File(contentPath).listFiles(new?FileFilter()?{

/**使用过滤器过滤掉目录*/

@Override

public?boolean?accept(File?pathname)?{

if(pathname.isDirectory())

{

return?false;

}else

return?true;

}

});

return?fileList;

}

/**?对当前目录下的所有文件进行排序?*/

public?static?File[]?sort()?{

getFiles();

Arrays.sort(fileList,?new?FileComparator());

return?fileList;

}

public?static?void?tree(File?f,?int?level)?{

String?preStr?=?"";

for(int?i=0;?ilevel;?i++)?{

preStr?+=?"????";

}

File[]?childs?=?f.listFiles();

//返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。

for(int?i=0;?ichilds.length;?i++)?{

System.out.println(preStr?+?childs[i].getName());

if(childs[i].isDirectory())?{

tree(childs[i],?level?+?1);

}

}

}

//?提供一个"比较器"

static?class?FileComparator?implements?java.util.ComparatorFile?{

@Override

public?int?compare(File?o1,?File?o2)?睁卖旁{

//?按照文件名的字典顺序进行比较

return?o1.getName().compareTo(o2.getName());

}

}

}

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

一.???????????创建索引

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

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

IndexWriterindexWriter=newIndexWriter(INDEX_STORE_PATH,newStandardAnalyzer(),create);

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

newStandardAnalyzer():?分词工具

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

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

Documentdoc=newDocument();

Fieldfield1=newField(fieldName1,fieldValue,??Field.Store.YES,Field.Index.TOKENIZED);

doc.add(field1);

Fieldfield2=newField(fieldName2,fieldValue,??Field.Store.YES,Field.Index.TOKENIZED);

doc.add(field2);

……

indexWriter.addDocument(doc);

indexWriter.close();

参数说明:

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

如下图所示

?????????

Field?:用来表示不同的数据源

fieldName1:?表示field名称

fieldValue:??表示field?的值

Field.Store.YES,:表示是否在索引文件中完整的存储该值。

在创建索引时,有些内容需要以摘要的形式完整地或以片段的方式显示在页面上,来便于用户查找想要的记录,那么就应该选择存储,如果不需要完整或片段的显示就不需要存储。

Field.Index.TOKENIZED?:表示是否索引和分碧和词。

只要是需要当作关键字让用户查找的字段就需要建立索引。

在建立索引的过程中,如果像文章标题、文章内容这样的Field,?一般是靠用户输入几个关键字来查询的,就应该选择分词。

如果需要用户输入完整字符也就是精确查找才能查询到的,例如:beanName,就可以不分词。

Document最直观的理解方式:

Document就相当于我们平台中的一个普通javaBean,,而Field?就是javaBean中的一个属性。lucene搜索的机制就是靠搜索指定的Field的值?,来得到含有要搜索内容的Document?集合,所以问题的关键在于如何组织Document.

2.结合平台创建索引的思路

(1)?经分析敬衫搜索元素应该由如下内容组成(Document的属性)

(2)?数据库数据转化为Document?的构造过程:

JavaBean/Attachment?????→???(TempObject)BaseData??→???(FinallyObject)Document

分析:

要建立索引的源数据分为两大部分:一个是数据库数据?BeanData,另一个是附件数据?FileData,?这样可以建立一个抽象类?BaseData,?来存放它们共有的属性。同时为了管理这些相应的数据,在相同的等级结构上,建立了相应的管理类(xxxDataManager),对这些数据类的操作(建立或删除索引)进行管理,并用一个工厂类(DataManagerFactory)来创建所需要的管理类,IndexHelper用来充当整个索引模块对外的接亮慧腔口,为了实现一些与平台特定的业务,特用SupportManager来提供一些额外的业务支持,索引模块代码结构如下图所示。

二.搜索索引

1.???lucene?搜索的核心步骤:

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

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

Query??query=MultiFieldQueryParser.parse(queryStr,fields,flags,newStandardAnalyzer());

Hits??hits??=??new??IndexSearcher(INDEX_STORE_PATH).search(query);

for(inti=0;ihitsLength;i++)

{

Documentdoc=hits.doc(i);

Stringtitle=doc.get(“title”);

Stringsummary=doc.get(“summary”);

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

if(title!=null){

TokenStreamtokenStream=analyzer.tokenStream(“title”,newStringReader(title));

StringhighlighterValue=highlighter.getBestFragment(tokenStream,title);

if(highlighterValue!=null){

title=highlighterValue;

}

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

}

if(summary!=null){

TokenStreamtokenStream=analyzer.tokenStream(“summary”,newStringReader(summary));

StringhighlighterValue=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.在新的目录下建立datapackage?并建立相应的数据类,并使这个数据类继承BeanData。

例如:

packagecom.cscec.oa.searchengine.extend.mole.resourcestore.data

{

}

3.?与datapackage?同一级目录建立managerpackage?并建立相应管理类,并使这个管理类继承BeanDataManager

例如:

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

{

}

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

java如何实现搜索功能。比如,输入txt就能搜索出这个文件夹内所有txt格式的文件。请给完整代码。

import?java.io.*;

public?class?FileDemo{

public?static?void?main(String[]?args)throws?Exception{

????????//第一枯桥个参数是文件路径,第二个参数是要搜索的文件扩展名没源猛

getFile("D:\JavaDemo"裂拦,".txt");

}

private?static?void?getFile(String?pathName,?final?String?endsWith)throws?Exception{

File?file?=?new?File(pathName);

if(!file.exists())

throw?new?RuntimeException("文件不存在,你检索个P呀。");

file.listFiles(new?FileFilter(){

public?boolean?accept(File?file){

if(file.getName().endsWith(endsWith)){

System.out.println(file.getName());

return?true;

}else

return?false;

}

});

}

}

阅读全文

与lucenedemojava相关的资料

热点内容
dnf70版本红眼 浏览:484
越来越不懂两个版本 浏览:258
javabigdecimal位数 浏览:316
学好编程需要学哪些东西 浏览:186
概预算教程 浏览:893
90版本国服第一驱魔 浏览:436
手机qq音乐启动程序 浏览:840
口袋妖怪破解版12版本 浏览:632
数据研究的岗位有哪些 浏览:124
今日头条网站怎么改名 浏览:663
信口袋app什么系列口子 浏览:374
安微六安在哪个网站查中考成绩 浏览:121
编程猫下雨怎么写 浏览:857
ai混合工具怎么用 浏览:916
防火墙限制访问网站怎么办 浏览:670
炫舞隐藏人物文件 浏览:47
文件名忽略第一个排序 浏览:795
无锡专业网站界面设计多少钱 浏览:338
cad看图王显示缺少参照文件 浏览:483
智能水表是怎么上传数据的 浏览:577

友情链接