欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2017年06月28日 16:39:29   作者:古越劍簫  
本篇文章主要介紹了詳解java整合solr5.0之solrj的使用 ,具有一定的參考價(jià)值,有興趣的可以了解下

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

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

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

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

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

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


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

 配置好以上,就可以使用代碼進(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的刪除 會(huì)刪除所有建立的索引文件
  }

增加分詞

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

基于Bean增加分詞

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

查詢結(jié)果

@Test
  public void test04() throws Exception{
    //定義查詢內(nèi)容 * 代表查詢所有  這個(gè)是基于結(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é)果集封裝為對(duì)象Bean

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

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

@Test
  public void test06() throws Exception{
    //定義查詢內(nèi)容 * 代表查詢所有  這個(gè)是基于結(jié)果集
     SolrQuery query = new SolrQuery("solr");
     query.setStart(0);//起始頁
     query.setRows(5);//每頁顯示數(shù)量
     query.setParam("hl.fl", "msg_title,msg_content");//設(shè)置哪些字段域會(huì)高亮顯示
     query.setHighlight(true).setHighlightSimplePre("<span class='hight'>")
     .setHighlightSimplePost("</span>");
     
     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){
         //高亮必須要求存儲(chǔ) 不存儲(chǔ)的話 沒法添加高亮
         System.out.println(rsp.getHighlighting().get(id).get("msg_title"));
       }
     }
  }

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

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java本機(jī)內(nèi)存分配Native?memory?allocation?mmap失敗問題解決

    java本機(jī)內(nèi)存分配Native?memory?allocation?mmap失敗問題解決

    這篇文章主要介紹了java本機(jī)內(nèi)存分配Native?memory?allocation?mmap失敗問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • SpringBoot對(duì)Jar包進(jìn)行加密的示例代碼

    SpringBoot對(duì)Jar包進(jìn)行加密的示例代碼

    在當(dāng)今互聯(lián)網(wǎng)高速發(fā)展的時(shí)代,軟件安全問題變得尤為突出,隨著開源技術(shù)的普及,Spring Boot等框架的應(yīng)用越來越廣泛,但也伴隨著代碼被反編譯的風(fēng)險(xiǎn),本文將探討在Spring Boot項(xiàng)目中對(duì)Jar包進(jìn)行加密,以防止反編譯的安全實(shí)踐,需要的朋友可以參考下
    2023-12-12
  • Java 配置加載機(jī)制詳解及實(shí)例

    Java 配置加載機(jī)制詳解及實(shí)例

    這篇文章主要介紹了Java 配置加載機(jī)制詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • Mybatis常見注解有哪些(總結(jié))

    Mybatis常見注解有哪些(總結(jié))

    這篇文章主要介紹了Mybatis常見注解有哪些(總結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Spring boot集成swagger2生成接口文檔的全過程

    Spring boot集成swagger2生成接口文檔的全過程

    這篇文章主要給大家介紹了關(guān)于Spring boot集成swagger2生成接口文檔的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 如何在Spring?Boot中使用MyBatis訪問數(shù)據(jù)庫

    如何在Spring?Boot中使用MyBatis訪問數(shù)據(jù)庫

    MyBatis可以通過簡單的XML或者注解來配置和映射原始類型,接口,和Java POJO為數(shù)據(jù)庫中記錄,使用MyBatis幫助我們解決各種問題,本文介紹如何在Spring?Boot中使用MyBatis訪問數(shù)據(jù)庫,感興趣的朋友一起看看吧
    2023-11-11
  • Java的反射機(jī)制一起來看看

    Java的反射機(jī)制一起來看看

    這篇文章主要為大家詳細(xì)介紹了Java反射機(jī)制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Mybatis逆向生成使用擴(kuò)展類的實(shí)例代碼詳解

    Mybatis逆向生成使用擴(kuò)展類的實(shí)例代碼詳解

    這篇文章主要介紹了Mybatis逆向生成使用擴(kuò)展類的實(shí)例代碼,代碼簡單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-05-05
  • 使用Spring動(dòng)態(tài)修改bean屬性的key

    使用Spring動(dòng)態(tài)修改bean屬性的key

    這篇文章主要介紹了使用Spring動(dòng)態(tài)修改bean屬性的key方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • SpringCloud遠(yuǎn)程服務(wù)調(diào)用實(shí)戰(zhàn)筆記

    SpringCloud遠(yuǎn)程服務(wù)調(diào)用實(shí)戰(zhàn)筆記

    本文給大家介紹SpringCloud遠(yuǎn)程服務(wù)調(diào)用實(shí)戰(zhàn)筆記,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-11-11

最新評(píng)論