solr与solrj6.0查询总结

solr查询需要注意的几个点:
1.配置文件中如果该列的type=string,则是完全匹配查询,所以配置分词不要忘记了。
string和text_ik
另外如果给字段加上双引号也是完全匹配查询,例如
无

2.多个查询条件需要连接符,连接符解释高速入口,经测试支持括号。
划重点:“+”不等于AND,完全不同,加号只需要满足后面的条件,前面的条件可有可无,所以推荐使用AND、OR、NOT等集合修饰符。

3.顺便记录删除的方法,solr与solrj6.0查询总结_第1张图片

solrj
Java操作solr有两种方式,一种是下载solrj,使用SolrClient;另一种直接用httpclient访问,因为solrj内部是集成了httpclient的,所以可以随意的支持。
1.初始化

static{
        SolrClient client = new HttpSolrClient("http://" + solrip + ":" + solrport +"/solr/core1");
    }

2.基本查询

SolrQuery params = new SolrQuery();
            params.set("q", "id:id");
            params.set("start", 0);
            params.set("rows", 10);
            SolrDocumentList docs = client.query(params).getResults();

docs.getNumFound()的结果是全部记录的数目而不是返回的数目。

3.更新:直接覆盖,源码把更新和插入写在一起了。

4.删除
deleteById():没什么好说的,直接把ID或ID的list塞进去。
deleteByQuery(String query):query是标准格式,例如“id:*”;

使用httpclient连接
queryPrefix=”http://” + Configure.config.getString(“SolrParaServer”) + “:” + Configure.config.getString(“SolrParaServerPort”) + “/solr/core1/select/?indent=true&wt=json&rows=20&fl=*,score&q=”;
query = queryPrefix + “uid:”+AdditionParams.getUserid()+ “%20AND%20ask_title:” + query + “%20AND%20(“+filequery + “)”;
使用20%是因为要提前转码,包括中文内容之类的都需要。

你可能感兴趣的:(笔记,solr)