下面是一个例子:
import org.apache.solr.client.solrj.SolrServer
import org.apache.solr.client.solrj.SolrServerException
import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer
import org.apache.solr.client.solrj.response.QueryResponse
import org.apache.solr.common.SolrDocument
import org.apache.solr.common.params.ModifiableSolrParams
import java.net.MalformedURLException
public class Main {
public static void main(String[] args) throws MalformedURLException, SolrServerException {
SolrServer server = new CommonsHttpSolrServer("http://localhost:8080/solr")
ModifiableSolrParams params = new ModifiableSolrParams()
// 查询关键词
params.set("q", "2010")
// 分页,,start=0就是从0开始,,rows=5当前返回5条记录,,,第二页就是变化start这个值为5就可以了。
params.set("start", 0)
params.set("rows", 5)
// 排序,,如果按照id 排序,,那么将score desc 改成 id desc(or asc)
params.set("sort", "score desc")
// 返回信息 * 为全部 这里是全部加上score,如果不加下面就不能使用score
params.set("fl", "*,score")
QueryResponse response = server.query(params)
// 搜索得到的结果数
System.out.println("Find:"+ response.getResults().getNumFound()+"\n\n")
// 输出结果
for(SolrDocument doc:response.getResults())
{
System.out.println("id: " + doc.getFieldValue("id").toString())
System.out.println("title: " + doc.getFieldValue("title").toString()+"\n")
}
}
}
这2个不是一类的东西啊。主要看你的需求。
redis是非关系型,在内存中以Key-Value形式存储的数据库。特点是速度非常非常快。
solr是一个搜索引擎。一般用来作为网站内的搜索功能。