java调用solr代码 java jna调用so库( 二 )


schema name="example" version="1.1"
……
fieldType name="text" class="solr.TextField"
analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/
/fieldType
……
/schema
java怎么调用solr查询接口solr官方网站
下面是一个例子:
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;
【java调用solr代码 java jna调用so库】public class Main {
public static void main(String[] args) throws MalformedURLException, SolrServerException {
SolrServer server = new CommonsHttpSolrServer("");
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");
}
}
}
java web 怎么用solr我们下载的Solr包后,进入Solr所在的目录 , 我们可以看到以下几个目录:build、client、dist、example、lib、site、src 。下面分别对其进行介绍 。
1)build:该目录是在ant build过程中生成的,其中包含了未被打包成jar或是war的class文件以及一些文档文件 。
2)client:该目录包含了特定语言的Solr客户端API,使得使用其他语言的用户能通过HTTP用XML与Solr进行通话 。现在该目录里面虽然包含javascript、python、ruby三个子目录,但是到目前为止只包含一部分的ruby的代码,其他语言仍是空的 。另外,Solr的Java客户端称为SolrJ,其代码位于src/solrj目录下面 。在之后的文章中我会详细介绍Solr客户端的使用 。
3)dist:该目录包含build过程中产生的war和jar文件,以及相关的依赖文件 。还记得上一篇文章中,我们在build 1.4版本的Solr源代码后需要部署example吗?其实就是将该目录下面的apache-solr-1.4.war部署到Jetty上面去,并重命名为solr.war 。
4)example:这个目录实际上是Jetty的安装目录 。其中包含了一些样例数据和一些Solr的配置 。
其中一些子目录也比较重要,这里也对它们稍作介绍 。
lexample/etc:该目录包含了Jetty的配置,在这里我们可以将Jetty的默认端口从8983改为80端口 。
l将其中的8983端口换成80端口 。注意更改端口后启动Jetty可能会提示你没有权限 , 你需要使用sudo java -jar start.jar来运行 。
lexample/multicore:该目录包含了在Solr的multicore中设置的多个home目录 。在之后的文章中我会对其进行介绍 。
lexample/solr:该目录是一个包含了默认配置信息的Solr的home目录 。
详见下面的“solr home说明”
lexample/webapps:Jetty的webapps目录 , 该目录通常用来放置Java的Web应用程序 。在Solr中,前面提到的solr.war文件就部署在这里 。

推荐阅读