最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

它的主要作用是將msg_title,msg_content兩個域的值拷貝到msg_all域中,我們在搜索的時候可以只搜索這個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的刪除 會刪除所有建立的索引文件
  }

增加分詞

@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<Message> msgs=new ArrayList<Message>();
    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<Message> 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("<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){
         //高亮必須要求存儲 不存儲的話 沒法添加高亮
         System.out.println(rsp.getHighlighting().get(id).get("msg_title"));
       }
     }
  }

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

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

相關(guān)文章

  • MyBatis使用級聯(lián)操作解決lombok構(gòu)造方法識別失敗問題

    MyBatis使用級聯(lián)操作解決lombok構(gòu)造方法識別失敗問題

    這篇文章主要介紹了MyBatis使用級聯(lián)操作解決lombok構(gòu)造方法識別失敗問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Spring Boot 集成 Kafka的詳細(xì)步驟

    Spring Boot 集成 Kafka的詳細(xì)步驟

    Spring Boot與Kafka的集成使得消息隊列的使用變得更加簡單和高效,可以配置 Kafka、實現(xiàn)生產(chǎn)者和消費(fèi)者,并利用 Spring Boot 提供的功能處理消息流,以下是 Spring Boot 集成 Kafka 的詳細(xì)步驟,包括配置、生產(chǎn)者和消費(fèi)者的實現(xiàn)以及一些高級特性,感興趣的朋友一起看看吧
    2024-07-07
  • Java判斷是否為閏年的方法示例

    Java判斷是否為閏年的方法示例

    這篇文章主要介紹了Java判斷是否為閏年的方法示例,本文直接給出示例代碼,并講解了判斷原理,需要的朋友可以參考下
    2015-06-06
  • Java中實現(xiàn)文件上傳下載的三種解決方案(推薦)

    Java中實現(xiàn)文件上傳下載的三種解決方案(推薦)

    這篇文章主要介紹了Java中實現(xiàn)文件上傳下載的三種解決方案的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • Spring Bean生命周期之BeanDefinition的合并過程詳解

    Spring Bean生命周期之BeanDefinition的合并過程詳解

    這篇文章主要為大家詳細(xì)介紹了Spring Bean生命周期之BeanDefinition的合并過程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

    2022-03-03
  • Java中的Lambda表達(dá)式及其應(yīng)用小結(jié)

    Java中的Lambda表達(dá)式及其應(yīng)用小結(jié)

    Java中的Lambda表達(dá)式是一項極具創(chuàng)新性的特性,它使得Java代碼更加簡潔和高效,尤其是在集合操作和并行處理方面,這篇文章主要介紹了Java中的Lambda表達(dá)式及其應(yīng)用,需要的朋友可以參考下
    2025-04-04
  • Java中List根據(jù)map的某個key去重的代碼

    Java中List根據(jù)map的某個key去重的代碼

    今天小編就為大家分享一篇關(guān)于Java中List根據(jù)map的某個key去重的代碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Java中channel用法總結(jié)

    Java中channel用法總結(jié)

    這篇文章主要介紹了Java中channel用法,較為詳細(xì)的總結(jié)了channel的定義、類型及使用技巧,需要的朋友可以參考下
    2015-06-06
  • Spring-AOP 靜態(tài)正則表達(dá)式方法如何匹配切面

    Spring-AOP 靜態(tài)正則表達(dá)式方法如何匹配切面

    這篇文章主要介紹了Spring-AOP 靜態(tài)正則表達(dá)式方法如何匹配切面的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Maven中pom.xml配置文件詳細(xì)介紹

    Maven中pom.xml配置文件詳細(xì)介紹

    這篇文章主要介紹了Maven中pom.xml配置文件詳細(xì)介紹,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11

最新評論

丹棱县| 十堰市| 北宁市| 那曲县| 黄浦区| 文化| 荆门市| 聂荣县| 黔西县| 黑水县| 宝坻区| 承德县| 桓仁| 新晃| 龙陵县| 罗平县| 新竹县| 连南| 阳城县| 定西市| 宝鸡市| 合水县| 安乡县| 文登市| 安达市| 兴隆县| 平顶山市| 临沂市| 轮台县| 香格里拉县| 卓尼县| 旌德县| 天镇县| 华宁县| 庆安县| 东莞市| 兰西县| 云梦县| 金塔县| 上高县| 巴里|