撈出所有空值的記錄
-FIELD_NAME:[* TO *]
-FIELD_NAME:["" TO *]
撈出所以非空值的記錄
FIELD_NAME:[* TO *]
FIELD_NAME:["" TO *]
wbkuo 發表在 痞客邦 留言(0) 人氣(47)
請開啟 example/etc/jetty.xml
並尋找 <Call name="addConnector"> 區塊,應該會像底下這樣
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.bio.SocketConnector">
<Call class="java.lang.System" name="setProperty"> <Arg>log4j.configuration</Arg> <Arg>etc/log4j.properties</Arg> </Call>
<Set name="host"><SystemProperty name="jetty.host" /></Set>
<Set name="port"><SystemProperty name="jetty.port" default="8983"/></Set>
<Set name="maxIdleTime">50000</Set>
<Set name="lowResourceMaxIdleTime">1500</Set>
<Set name="statsOn">false</Set>
</New>
</Arg>
</Call>
wbkuo 發表在 痞客邦 留言(0) 人氣(177)
請在搜尋的網址後面加上參數
&sort=你要排序的欄位+遞增或是遞減排序
如 http://localhost:8983/solr/blog2/select?q=*%3A*&wt=xml&indent=true&sort=id+asc
就是排序 id 這個欄位,並且做遞增排序
wbkuo 發表在 痞客邦 留言(0) 人氣(137)

請在搜尋的網址後面加上參數
stats=true
stats.field=你要統計的欄位
如 http://localhost:8983/solr/blog2/select?q=*%3A*&wt=xml&indent=true&stats=true&stats.field=id
送出後你會發現結果多了以下的欄位
wbkuo 發表在 痞客邦 留言(0) 人氣(129)
在 Solr 的 schema.xml,要對每一個欄位做資料型態的定義,但如果不想一個一個設定的話,可以使用 dynamicField 的方式來處理
使用方法如下
1. 在 schema.xml 裡增加 dynamicField 的設定
<dynamicField name="*_i" type="sint" indexed="true" stored="true"/>
<dynamicField name="*_s" type="string" indexed="true" stored="true"/>
<dynamicField name="*_l" type="slong" indexed="true" stored="true"/>
<dynamicField name="*_t" type="text" indexed="true" stored="true"/>
<dynamicField name="*_b" type="boolean" indexed="true" stored="true"/>
<dynamicField name="*_f" type="sfloat" indexed="true" stored="true"/>
<dynamicField name="*_d" type="sdouble" indexed="true" stored="true"/>
<dynamicField name="*_dt" type="date" indexed="true" stored="true"/>
wbkuo 發表在 痞客邦 留言(0) 人氣(245)
承上篇 [Solr] Solr 學習筆記(四) 建立自己的 Core 繼續來做 Data Import Handler 的操作
1. 修改 solrconfig.xml
在 config TAG 中加上 dataimport 的設定(原本應該已經有了,請搜尋 dataimport)
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler>
wbkuo 發表在 痞客邦 留言(0) 人氣(3,486)

大家可以看到,原本 Solr 底下有一個預設的 core 叫 collection1,那要如何建立自己的 core 呢?
因為我接下來要建立一個 DataImport 從 MySQL 直接匯入資料到 Solr,所以我會直接複製 example-DIH 裡的 core 來用
1. 建立 core 目錄
# cd /var/ww/solr/search/solr
# /bin/cp -rf ../../example/example-DIH/solr/db .
# mv db blog_doc
註: blog_doc 只是我要的目錄名稱,因為我接下來要匯入的是我部落格的資料,資料表名稱就是 blog_doc
2. 把 core 加入
這裡有兩種做法
a. 直接編輯 solr.xml,但需要重新啟動 Solr# vim /var/ww/solr/search/solr/solr.xml
找到 cores 的 Tag 之後,再裡面再加入一個 core 的 Tag,並在屬性 name 及 instanceDir 分別都填上 blog_doc
wbkuo 發表在 痞客邦 留言(0) 人氣(1,317)
前言
因為官網一開始教學的時候,是使用 solr/example 的目錄,但如果真的要開始使用 solr 的時候
相信大家都無法接受直接在 example 底下開始實作,以下記錄一下我自己建立目錄的步驟
1. 把 example 目錄複製成你要的名稱
# cd /var/www/solr
# /bin/cp -rf example search
2. 刪除不必要的目錄
# cd /var/www/solr/search
# rm -rf cloud-scripts
# rm -rf example-DIH
# rm -rf exampledocs
# rm -rf multicore
3. 啟動 Solr Server
# cd /var/www/solr/search
# java -jar start.jar
wbkuo 發表在 痞客邦 留言(0) 人氣(1,128)
剛開始接觸 Solr 的時候,一直都是用 kill -9 的方式直接把正在跑的 java 殺掉
但這樣實在太暴力了,如果正式上線還這樣做,我大概會被主管和同事殺掉,所以研究了一下正確的啟動與關閉方法
啟動
java -DSTOP.PORT=8079 -DSTOP.KEY=密碼 -jar start.jar
停止
java -DSTOP.PORT=8079 -DSTOP.KEY=密碼 -jar start.jar --stop
說明
-DSTOP.PORT=8079
Port 可以自行指定,而且跟 Solr 啟動後 Web 管理介面的 Port 無關,似乎是只是啟動和停止的時候指定一樣的就可以了
-DSTOP.KEY=密碼
停止時的密碼,也是啟動和停止的時候輸入一樣的就可以了
更詳細的說明
cd 到你的 solr 目前下的 example
# java -jar start.jar --help
(最近越來越覺得看官方文件才是最快的...)
參考文件
http://stackoverflow.com/questions/7976261/how-to-stop-solr-with-command-line
wbkuo 發表在 痞客邦 留言(0) 人氣(562)

1. 下載(以 4 .1 版為例)
# cd /var/www
# wget http://archive.apache.org/dist/lucene/solr/4.1.0/solr-4.1.0.tgz
2. 解壓縮檔案
# tar zxvf solr-4.1.0.tgz
3. 安裝 java
# yum -y install java
4. 設定防火牆
# setup
把 Port 8983 打開
5. 啟動 Solr
# cd /var/www/solr-4.1.0/example
# java -jar start.jar
6. 在瀏灠器觀看
打開瀏灠器,輸入http://YOUR_DOMAIN:8983/solr,成功的話會看到像這樣
OK, 這樣就成功了!
安裝環境
作業系統 CentOS 5.8
wbkuo 發表在 痞客邦 留言(0) 人氣(1,185)