类似百度贴吧的搜索方式java如何实现?
数据少的话 模糊查找,多的话,用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.dao;
public class CreateAndUse extends HibernateDaoSupport implements dao{
private static String INDEX_PATH = "D:/use/";//索引路径
public void create(){
Listuser list = getHibernateTemplate().find("from user");
try{
IndexWriter writer = new IndexWriter(CreateAndUse.INDEX_PATH, new StandardAnalyzer(),true);
for(int i=0;ilist.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 Listuser search(String str,String type) throws CorruptIndexException, IOException, ParseException{
Listuser 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的搜索库,你要自己下载配置一下这个库。
如何在java代码中实现百度搜索
百度搜索的关键字是跟在链接后边的,你可以用url获取一下,就是搜索结果页了,但是会包含很多html代码,需要解析出来需要的链接
JAVA连接百度搜索
1,可以用httpconnection或者apache的httpclient,通过“要搜索的关键字”这个URL,获取百度搜索的内容。自己解析。
2,如果想从浏览器打开页面,可以用Runtime.getRuntime().exec("浏览器.exe 要打开的url");
3,如果自己用jni或者jna封装一些webkit之类的,通过java调用也可以。
java编程可以实现程序自动搜索百度某关键字然后获取结果吗?
当然是可以的啊,用httpclient去模拟网页提交,会返回给你一个网页结果,也就是一个长的字符串,存放到java变量中,然后再在这个网页中将你需要的内容拿出来就可以了。
JAVA实现BAIDU的搜索功能
下列的程序实现了数据文件zip方式的压缩和解压缩方法。randomData()函数随机生成
50个double数据,并放在doc字符串变量中;openFile()函数读取ZIP压缩文件;saveFile()函数
将随机生成的数据存到ZIP格式的压缩文件中。
import java.util.zip.*;
import java.awt.event.*;
import java.awt.*;
import java.lang.Math;
import java.io.*;
public class TestZip extends Frame implements ActionListener {
TextArea textarea; ‖显示数据文件的多行文本显示域
TextField infotip; ‖显示数据文件未压缩大小及压缩大小单行文本显示域
String doc; ‖存储随机生成的数据
long doczipsize = 0;‖压缩数据文件的大小
public TestZip(){
‖生成菜单
MenuBar menubar = new MenuBar();
setMenuBar(menubar);
Menu file = new Menu("File",true);
menubar.add(file);
MenuItem neww= new MenuItem("New");
neww.addActionListener(this);
file.add(neww);
MenuItem open=new MenuItem("Open");
open.addActionListener(this);
file.add(open);
MenuItem save=new MenuItem("Save");
save.addActionListener(this);
file.add(save);
MenuItem exit=new MenuItem("Exit");
exit.addActionListener(this);
file.add(exit);
‖随机生成的数据文件的多行文本显示域
add("Center",textarea = new TextArea());
‖提示文本原始大小、压缩大小的单行文本显示域
add("South",infotip = new TextField());
}
public static void main(String args[]){
TestZip ok=new TestZip();
希望采纳 谢谢
分享文章:java百度搜索代码实现,百度搜索代码大全
网站网址:http://scpingwu.com/article/hocoep.html