編輯:關於Android編程
摘要: Solr6.0的solrJ接口有部分變化,我將使用SolrJ的API,把一段XML文檔數據插入到Solr數據庫中。
我准備了一段XML數據,保存在cd.xml文檔中。
鮑勃·迪倫 美國 哥倫比亞 10.90 1985 夏天的午後聽Bob Dylan的歌特別容易被催眠 邦尼泰勒 英國 哥倫比亞廣播公司 9.90 1988 對未來,永遠抱著樂觀與喜悅的態度 桃莉·巴頓 美國 美國無線電公司 9.90 1982 美國歷史上最暢銷的錄音室唱片 蓋瑞摩爾 英國 維京唱片 10.20 1990 在聽到他們的現場之後,會愛上這些老男人的聲音 艾羅斯雷瑪若提 歐盟 貝塔斯曼音樂集團 9.90 1997 這張專輯以希臘神話中的人物為音樂背景,突顯了希臘作為一個文明古國所擁有的很深厚的文化積澱 比吉斯樂隊 英國 環球唱片 10.90 1998 青春活力十足,主唱聲線可塑性強 羅德·斯圖爾特 英國 匹克威克 8.50 1990 作者是最有才華的詞曲作者之一,是二十世紀六十年代中期的英國入侵浪潮之後的標志性人物之一。 安德烈·波伽利 歐盟 環球唱片 10.80 1996 獨一無二的聲音的力量、那令人難以抗拒的溫暖的感覺,這使得語言和文化都不再是阻擋交流的障礙。 普西·斯樂巨 美國 大西洋 8.70 1987 他無法假裝若無其事,他會用全世界來交換,只為了他找到的好東西.即使她很壞,他也看不見,她不會有錯,他會背棄他最要好 肯尼·羅傑斯 英國 Mucik Master 8.70 1995 這哥們的歌都是自覺自發熱愛自己一畝三分地的城市貧民心聲,毫無怨言。永遠歡樂,永遠飛的大。 威爾·史密斯 美國 哥倫比亞 9.90 1997 這個還真紐約那種感覺,特派對,流說。而且陣容強大,真正的全能明星。
首先需要讀文件,將XML文件以流的形式讀取出來。
建立java bean, CD.javapackage com.trainning.project; public class CD { private String title; private String artist; private String country; private String company; private double price; private String year; private String description; public String getTitle() { return title; } ...... public void setDescription(String description) { this.description = description; } @Override public String toString() { return "CD [title=" + title + ", artist=" + artist + ", country=" + country + ", company=" + company + ", price=" + price + ", year=" + year + ", description=" + description + "]"; } }將XML文檔轉換為Java bean, ReadXMLFile.java
package com.trainning.project; import java.io.File; import java.util.ArrayList; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class ReadXMLFile { public static ListgetXMLFileList(String filepath) { //創建文件對象 File file = new File(filepath); //構建SAX讀寫器 SAXReader saxReader = new SAXReader(); //將XML文件內容保存在List中 List cds = new ArrayList (); try { //加載文件 Document document = saxReader.read(file); //獲取根元素 Element root =document.getRootElement(); //獲取根元素下的所有子元素 List list = root.elements(); //將文件元素內容賦值給java bean for(Element e : list){ CD cd = new CD(); cd.setTitle(e.elementText("TITLE")); cd.setArtist(e.elementText("ARTIST")); cd.setCompany(e.elementText("COMPANY")); cd.setCountry(e.elementText("COUNTRY")); cd.setPrice(Double.parseDouble(e.elementText("PRICE"))); cd.setYear(e.elementText("YEAR")); cd.setDescription(e.elementText("DESCRIPTION")); cds.add(cd); } } catch (DocumentException e) { e.printStackTrace(); } return cds; } }
package com.trainning.project; import java.util.List; import java.util.UUID; import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.common.SolrInputDocument; public class SolrPublisher { public static final String SOLR_URL = "http://localhost:8080/solr/core0"; private HttpSolrClient client; public SolrPublisher() { client = new HttpSolrClient(SOLR_URL); } public void insertDataToSolr() throws Exception{ String filepath = "src/main/java/com/trainning/project/cd.xml"; Listlist = ReadXMLFile.getXMLFileList(filepath); list.stream().forEach(System.out::println); for(CD cd : list){ SolrInputDocument input = new SolrInputDocument(); //ID是數據的主鍵,原則上必須指定,並且不能重復。便於數據管理,如刪除操作 input.addField("id", UUID.randomUUID().toString(), 1.0f); //這裡的addField方法第一個參數需要在core0/conf/managed-schema中有對應的field //參數使用的是managed-schema中有對應的field: //這個參數采用通配符的方式,指定一個string類型的字段 input.addField("title_s", cd.getTitle()); input.addField("artist_s", cd.getArtist()); input.addField("country_s", cd.getCountry()); input.addField("company_s", cd.getCompany()); input.addField("price_d", cd.getPrice()); input.addField("year_s", cd.getYear()); input.addField("description_s", cd.getDescription()); client.add(input); } //不能忘記提交 client.commit(); } public static void main(String[] args) { SolrPublisher publisher = new SolrPublisher(); try { publisher.insertDataToSolr(); } catch (Exception e) { e.printStackTrace(); } } }
直接使用http方式來查詢solr中的數據。
訪問: http://localhost:8080/solr/core0/select?q=* : *
最後,你可以在這裡 或https://github.com/cj96248/solr找到項目的源代碼。
1、原來是將EditView放到了popupwindow,發現EditView原有的復制、粘貼、全選、選擇功能失效了,所以便用DialogFragment代替了popup
這是個很簡單的問題,但每次隔一段時間後使用起來總是會出點亂子。這裡記錄下Logcat的步驟:1,在Activity裡申明tag變量(名字其實是隨便的,如下:private
由於業務關系,經常需要寫一些表單頁面,基本也就是簡單的增刪改查然後上傳,做過幾個頁面之後就有點想偷懶了,這麼低水平重復性的體力勞動,能不能用什麼辦法自動生成呢,查閱相關資
本書也正式的進入尾聲了,在android的世界了,不同的軟件,硬件信息就像一個國家的經濟水平,軍事水平,不同的配置參數,代表著一個android帝國的強弱,