问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

类似百度贴吧的搜索方式java如何实现?

发布网友 发布时间:2022-04-25 23:10

我来回答

3个回答

热心网友 时间:2022-06-18 13:51

数据少的话 模糊查找,多的话,用lucene
建立索引,从索引里面搜索。

索引搜索是这么做的:
package method;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.store.LockObtainFailedException;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import pojo.user;
import Interface.;

public class CreateAndUse extends HibernateDaoSupport implements {
private static String INDEX_PATH = "D:/use/";//索引路径
public void create(){
List<user> list = getHibernateTemplate().find("from user");
try{
IndexWriter writer = new IndexWriter(CreateAndUse.INDEX_PATH, new StandardAnalyzer(),true);
for(int i=0;i<list.size();i++){

Document doc = new Document();
Field f1 = new Field("id",String.valueOf(list.get(i).getId()),Field.Store.YES,Field.Index.UN_TOKENIZED);
Field f2 = new Field("username",list.get(i).getUsername(),Field.Store.YES,Field.Index.UN_TOKENIZED);
Field f3 = new Field("password",list.get(i).getPassword(),Field.Store.YES,Field.Index.TOKENIZED);

doc.add(f1);
doc.add(f2);
doc.add(f3);
writer.addDocument(doc);
}
writer.close();
}catch(Exception e){
e.printStackTrace();
}
}
public List<user> search(String str,String type) throws CorruptIndexException, IOException, ParseException{
List<user> list = new ArrayList();
user u = null;
IndexSearcher index = new IndexSearcher(INDEX_PATH);
QueryParser q = new QueryParser(type,new StandardAnalyzer());
q.setDefaultOperator(QueryParser.AND_OPERATOR);
Query query = q.parse(str);
Hits hits = index.search(query);
// System.out.println("hits的长度为:"+hits.length());
for(int i = 0;i < hits.length();i++){
u = new user();
u.setCount(hits.length());
u.setId(Integer.parseInt(hits.doc(i).get("id")));
u.setUsername(hits.doc(i).get("username"));
u.setPassword(hits.doc(i).get("password"));
list.add(u);
}
return list;
}

}

lucene是个java的搜索库,你要自己下载配置一下这个库。 http://lucene.apache.org/java/docs/

热心网友 时间:2022-06-18 13:52

正则式

热心网友 时间:2022-06-18 13:52

JAVA技术交流,请加群:202585753--
本群不为别的,就为五湖四海的朋友一起交流交流各种IT行业,
主要:ACCP NET C# JAVA JSP .NET SQL Oracle 技术交流 编程 Net技术交流
不管是学员还是已经出去工作的人,都请大家加进这个群吧。 大家一起好好的交流!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...但是打开微信公众平台界面数字和英文字体异常怎么解决? 微信文字显示异常 哪些品牌的假发看起来比较逼真? 哪些品牌的假发看着逼真? 哪些品牌的假发片比较逼真? 无主之地2这个怎么解决 我在游民星空下了无主之地2,就是那个免安装硬盘版,解压了其中一个之后... 大神求助:我在游民下的无主之地2全DLC免安装中文硬盘版下载,有些... 无主之地2我在游民星空下的,是免安装中文硬盘版 一个正方形的边长是9分米,它的周长是()厘米,面积是()。 word中的表格可以自动添加序号吗 求生之路2一打开游戏就说Failed to load the launcher DLL:拒绝访问 事业单位中级会计师聘任有什么要求? 城南旧事惠安馆读后感50字 求生2打开时failed to load the launcher DLL; Acess is denied,求破! 我的PES2012出现The dynamic library &quot;rld.dll&quot;failed to load这样的提示 关于事业单位会计人员评定中级职称的问题 我的世界联机http:&#47;&#47;zhidao.baidu.com&#47;question&#47;541827909.html - 信息提示 send failed语法对不对 事业单位评会计中级职称学历专业是否有限制 啊啊啊..求解...歼灭奖为什么总是failed? 用友通软件登录时提示:不能登录到服务器:failed:不能发送请求。这个问题怎么解决?急急急!!!_百度问一问 事业单位工作人员能否直接评定中级?我是会计专业当时直接考中级,是否必须重新考初会证? 能上网而且能打开贴吧,知道,视频等,就是网页部分怎么也打不开,提示错误代码:ERR_FAILED。 不能登陆到服务器:failed:不能发送请求”这是什么原因 发百度贴吧,跳出failed什么情况? 为什么华融不在央企名单里面啊?跪求解答,谢谢。 有一个叫华融金融的网站,账户上有钱为什么提不出来 中国华融资产管理股份有限公司陕西省分公司怎么样? 城南旧事读后感800字 求生之路2 failed to load the required icudt42 library 这个问题是更新版本后出现的, 之前玩没有问题 城南旧事读后感(自己写的) 安装安卓模拟器老是提示sdk manager:failed to install Update Failed 上汽零束工作稳定吗 城南旧事读后感1500字 无量科技有限公司是国企吗? 虾是怎样养成的? 《城南旧事》读书心得怎么写? 《城南旧事》的读书心得400字,要体现自己的感悟,要原创的!谢谢! 最近要面试了,想问一下中国电子系统技术有限公司是国企吗? 虾吃什么长大的 《城南旧事》读书笔记 100个字 中创新航是国企还是央企? 河虾吃什么才能长大? 中国搜索信息科技股份有限公司是国企吗 excel怎么把公式变成数字 青虾的蜕皮和生长的关系如何? 有什么办法可以让虾长的更快?