NUTCH, SOLR и Ubuntu сервер 12.04lts
Я использую Ubuntu server 12.04lts, и я бы знал, какая версия Nutch и Solr может быть совместима с ним.
Любое решение, пожалуйста?
1 ответ
Nutch 1.5 и Solr 3.6.0 совместимы.
Как:
1) установить JDK
sudo apt-get install openjdk-7-jdk
2) Скачать и распаковать Solr
sudo mkdir ~/tmp/solr
cd ~/tmp/solr
wget http://mirror.lividpenguin.com/pub/apache/lucene/solr/3.6.0/apache-solr-3.6.0.tgz
tar -xzvf apache-solr-3.6.0.tgz
*default jetty in solr, try to run java -jar start.jar* shutdown Ctrl-C
проверять http://localhost:8983/solr
3) Скачать и распаковать Nutch
sudo mkdir ~/tmp/nutch
cd ~/tmp/nutch
wget http://mirror.rmg.io/apache/nutch/1.5/apache-nutch-1.5-bin.tar.gz
tar -xzvf apache-nutch-1.5-bin.tar.gz
4) настроить нутч
chmod +x bin/nutch
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
добавить в conf/nutch-site.xml
<property>
<name>http.agent.name</name>
<value>My Nutch Spider</value>
</property>
выход
mkdir -p urls
cd urls
touch seed.txt
nano seed.txt
добавить URL для сканирования, например
http://nutch.apache.org/
в conf/regex-urlfilter.txt и заменить
# accept anything else
+.
с регулярным выражением, соответствующим домену, который вы хотите сканировать. Например, если вы хотите ограничить сканирование доменом nutch.apache.org, строка должна выглядеть следующим образом:
+^http://([a-z0-9]*\.)*nutch.apache.org/
5) настроить Solr
~/tmp/solr/apache-solr-3.6.0/example/solr/conf
schema.xml add the following
<fieldType name="text" class="solr.TextField"
positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1" generateNumberParts="1"
catenateWords="1" catenateNumbers="1" catenateAll="0"
splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory"
protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
<field name="digest" type="text" stored="true" indexed="true"/>
<field name="boost" type="text" stored="true" indexed="true"/>
<field name="segment" type="text" stored="true" indexed="true"/>
<field name="host" type="text" stored="true" indexed="true"/>
<field name="site" type="text" stored="true" indexed="true"/>
<field name="content" type="text" stored="true" indexed="true"/>
<field name="tstamp" type="text" stored="true" indexed="false"/>
<field name="url" type="string" stored="true" indexed="true"/>
<field name="anchor" type="text" stored="true" indexed="false" multiValued="true"/>
change <uniqueKey>id</uniqueKey> to
<uniqueKey>url</uniqueKey>
in solrconfig.xml add
<requestHandler name="/nutch" class="solr.SearchHandler" >
<lst name="defaults">
<str name="defType">dismax</str>
<str name="echoParams">explicit</str>
<float name="tie">0.01</float>
<str name="qf">
content^0.5 anchor^1.0 title^1.2
</str>
<str name="pf">
content^0.5 anchor^1.5 title^1.2 site^1.5
</str>
<str name="fl">
url
</str>
<int name="ps">100</int>
<bool name="hl">true</bool>
<str name="q.alt">*:*</str>
<str name="hl.fl">title url content</str>
<str name="f.title.hl.fragsize">0</str>
<str name="f.title.hl.alternateField">title</str>
<str name="f.url.hl.fragsize">0</str>
<str name="f.url.hl.alternateField">url</str>
<str name="f.content.hl.fragmenter">regex</str>
</lst>
</requestHandler>
6) Запустите Nutch Crawler и внесите указатель в Solr (убедитесь, что Solr запущен)
bin/nutch crawl urls -solr http://localhost:8983/solr/ -depth 3 -topN 5
проверить проиндексированные файлы @ http://localhost:8983/solr