真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

詳解java整合solr5.0之solrj的使用

1、首先導(dǎo)入solrj需要的的架包

科爾沁左翼網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。創(chuàng)新互聯(lián)建站2013年開創(chuàng)至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。

詳解java整合solr5.0之solrj的使用

2、需要注意的是低版本是solr是使用SolrServer進(jìn)行URL實例的,5.0之后已經(jīng)使用SolrClient替代這個類了,在添加之后首先我們需要根據(jù)schema.xml配置一下我們的分詞器

詳解java整合solr5.0之solrj的使用

這里的msg_all還需要在schema.xml中配置

詳解java整合solr5.0之solrj的使用

它的主要作用是將msg_title,msg_content兩個域的值拷貝到msg_all域中,我們在搜索的時候可以只搜索這個msg_all域就可以了,

solr默認(rèn)搜索需要帶上域,比如

詳解java整合solr5.0之solrj的使用

solr更改默認(rèn)搜索域的地方也在schema.xml,它默認(rèn)是搜索text域的,但是5.0之后不在這里配置默認(rèn)搜索域了,它的文檔也告訴我們,在solrconfig.xml中配置

詳解java整合solr5.0之solrj的使用

在solrconfig.xml中配置默認(rèn)搜素域,這樣我們就可以按照我們自己的域進(jìn)行搜索了

詳解java整合solr5.0之solrj的使用

 配置好以上,就可以使用代碼進(jìn)行CURD

private final static String URL="http://localhost:8080/solr/java";
  public SolrClient server=null;
  
  @Before
  public void init() throws Exception{
    server=new HttpSolrClient(URL);
  }

刪除所有分詞

//刪除所有分詞
  @Test
  public void testDel() throws Exception{
    server.deleteByQuery("*:*");
    server.commit();//先刪除 基于query的刪除 會刪除所有建立的索引文件
  }

增加分詞

@Test
  public void testAdd() throws Exception{
    SolrInputDocument doc=new SolrInputDocument();
    doc.addField("id", "3");
    doc.addField("msg_title", "新浪微博");
    doc.addField("msg_content", "我有一個微博帳號名字叫做什么呢?");
    server.add(doc);
    server.commit();
  }

基于Bean增加分詞

@Test
  public void test03() throws Exception{
    List msgs=new ArrayList();
    msgs.add(new Message("4", "第四個測試solr測試文件", new String[]{"中華人民共和國萬歲","中華上下五千年那年"}));
    msgs.add(new Message("5", "第5個好朋友是什么意思呢?", new String[]{"上海是個好地方","歌唱我們親愛的祖國曾經(jīng)走過千山萬水"}));
    server.addBeans(msgs);
    server.commit();
  }

查詢結(jié)果

@Test
  public void test04() throws Exception{
    //定義查詢內(nèi)容 * 代表查詢所有  這個是基于結(jié)果集
     SolrQuery query = new SolrQuery("solr");
     query.setStart(0);//起始頁
     query.setRows(3);//每頁顯示數(shù)量
     QueryResponse rsp = server.query( query );
     SolrDocumentList results = rsp.getResults();
     System.out.println(results.getNumFound());//查詢總條數(shù)
     for(SolrDocument doc:results){
       System.out.println(doc);
     }
  }

將查詢結(jié)果集封裝為對象Bean

@Test
  public void test05() throws Exception{
     SolrQuery query = new SolrQuery("中華");// * 號 是查詢 所有的數(shù)據(jù)
     QueryResponse rsp = server.query( query );
     List beans = rsp.getBeans(Message.class);//這個不能獲取查詢的總數(shù)了 也不能高亮
     for(Message message:beans){
       System.out.println(message.toString());
     }
  }

將結(jié)果集高亮顯示

@Test
  public void test06() throws Exception{
    //定義查詢內(nèi)容 * 代表查詢所有  這個是基于結(jié)果集
     SolrQuery query = new SolrQuery("solr");
     query.setStart(0);//起始頁
     query.setRows(5);//每頁顯示數(shù)量
     query.setParam("hl.fl", "msg_title,msg_content");//設(shè)置哪些字段域會高亮顯示
     query.setHighlight(true).setHighlightSimplePre("")
     .setHighlightSimplePost("");
     
     QueryResponse rsp = server.query( query );
     SolrDocumentList results = rsp.getResults();
     System.out.println(results.getNumFound());//查詢總條數(shù)
     for(SolrDocument doc:results){
       String id = (String) doc.getFieldValue("id"); //id is the uniqueKey field
       if(rsp.getHighlighting().get(id)!=null){
         //高亮必須要求存儲 不存儲的話 沒法添加高亮
         System.out.println(rsp.getHighlighting().get(id).get("msg_title"));
       }
     }
  }

ok,solr的基本使用就完成了

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


本文題目:詳解java整合solr5.0之solrj的使用
文章轉(zhuǎn)載:http://weahome.cn/article/pcecoh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部