یکپارچه سازی Nutch 1.7 با ElasticSearch
قابلیت یکپارچه سازی Nutch 1.7 با ElasticSearch بوجود آمده است.
تنظیم یکپارچه سازی ارزش فوق العاده ای دارد
این راهنما برای افرادی که با Nutch و ElasticSearch کار کرده اند می تواند دستورالعمل خوبی باشد
Nutch کار خزش (Crawl) ، واکشی (fetch) و تجزیه (parse) را برای نمایه سازی (indexing) به طور معجزا آسایی انجام می دهد ، ولی با این حال یکپارچه نیست.
این کاری که انجام میدهیم تغییر فایل nutch-site.xml در شاخه conf در جایی که Nutch نصب شده است.
اول از همه احتیاج داریم که افزونه نمایه ساز ( Indexer Plugin ) را فعال کنیم که این کار را با دستورات زیر انجام میدهیم :
<property>
<name>plugin.includes</name>
<value>protocol-http|urlfilter-regex|parse-(html|tika)|index-(basic|anchor)|indexer-elastic|scoring-opic|urlnormalizer-(pass|regex|basic)</value>
<description>Regular expression naming plugin directory names to include. Any plugin not matching this expression is excluded.
In any case you need at least include the nutch-extensionpoints plugin. By default Nutch includes crawling just HTML and plain text via HTTP,
and basic indexing and search plugins. In order to use HTTPS please enable protocol-httpclient, but be aware of possible intermittent problems with the
underlying commons-httpclient library.
</description>
</property>
آیتم های که اینجا اضافه شده اند برای نمایه ساز Elastic هستند.
در مرحله دوم احتیاج داریم که موارد زیر را در nutch-site.xml تغییر دهیم
<!– Elasticsearch properties –>
<property>
<name>elastic.host</name>
<value>localhost</value>
<description>The hostname to send documents to using TransportClient. Either host
and port must be defined or cluster.</description>
</property>
<property>
<name>elastic.port</name>
<value>9300</value>
<description>
</description>
</property>
<property>
<name>elastic.cluster</name>
<value>elasticsearch</value>
<description>The cluster name to discover. Either host and potr must be defined
or cluster.</description>
</property>
<property>
<name>elastic.index</name>
<value>nutch</value>
<description>Default index to send documents to.</description>
</property>
<property>
<name>elastic.max.bulk.docs</name>
<value>250</value>
<description>Maximum size of the bulk in number of documents.</description>
</property>
<property>
<name>elastic.max.bulk.size</name>
<value>2500500</value>
<description>Maximum size of the bulk in bytes.</description>
</property>
در این مورد من ElasticSearch را روی همان کیس نصب کرده ام ، به همین دلیل elastic.host نام localhost من هست
نکته مهم دیگر نام elastic.cluster است، اگر شما چیزی در این مورد نمیدانید فایل elasticsearch.yml را در شاخه ای که تنظیمات نصب ElasticSearch قرار دارد می توانید پیدا کنید.
پورت elastic.port به صورت پیش فرض ۹۳۰۰ برای واسط است ( برای خرمجی وب پورت ۹۲۰۰ که زمانی است که با nutch یکپارچه سازی نشده ).
در نهایت ایندکس را در ElasticSearch در فایل تنظیمات elastic.index بسازید.
دیگر نیاز نیست که conf/elasticsearch.conf را تغییر دهید و یا به Nutch 2.x ارتقا دهیم.
ترجمه : نادی سنجانی
منبع : https://www.mind-it.info/integrating-nutch-1-7-elasticsearch