Nutch dan Solr

1,531 views

Published on

Membangun Search Engine Sendiri dengan Open Source

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,531
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
45
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Nutch dan Solr

  1. 1. <ul>Nutch dan Solr </ul><ul><li>Membangun Search Engine Sendiri dengan Open Source
  2. 2. 2 Nopember 2011
  3. 3. Bowo Prasetyo
  4. 4. http://www.scribd.com/prazjp
  5. 5. http://www.slideshare.net/bowoprasetyo/ </li></ul>
  6. 6. Prasyarat <ul><li>Tutorial ini menggunakan software berikut: </li></ul><ul><ul><li>Unix-like OS
  7. 7. GNU/Linux (http://www.gnu.org/distros/common-distros.html)
  8. 8. Cygwin ( http://www.cygwin.com/ )
  9. 9. Java 1.6 ( http://java.com/ )
  10. 10. Nutch 1.3 ( http://nutch.apache.org/ )
  11. 11. Solr 3.4.0 ( http://lucene.apache.org/solr/ ) </li></ul></ul>
  12. 12. <ul>Mesin Penjelajah Nutch </ul><ul><li>Nutch adalah </li></ul><ul><ul><li>Software penjelajah web (web crawler)
  13. 13. Open source
  14. 14. Berfitur lengkap, dengan fungsi spesifik web:
  15. 15. database link-graph,
  16. 16. parser untuk HTML dan format dokumen lainnya, dll. </li></ul></ul>
  17. 17. <ul>Mesin Penjelajah Nutch </ul><ul><li>Nutch 1.3 didesain untuk bekerjasama dengan: </li></ul><ul><ul><li>Solr, platform pencari enterprize yang dibangun di atas Lucene Java, dan
  18. 18. Hadoop, framework software yang mendukung aplikasi terdistribusi yang intensif data. </li></ul></ul>
  19. 19. <ul>Arsitektur Nutch </ul>Segments Searcher CrawlDB LinkDB Index updatedb Crawler generate inject Url bibit fetch & parse invertlinks index Siklus penjelajahan Solr
  20. 20. <ul>Arsitektur Nutch – Komponen </ul><ul><li>Url bibit: daftar url untuk mengisi CrawlDB pertama kali.
  21. 21. CrawlDB: database yang berisi semua url baik yang sudah di fetch maupun belum.
  22. 22. Segments: terdiri dari segmen-segmen, yaitu database yang berisi satu set url-url (yang di fetch sebagai satu kesatuan), konten ( raw / parsed ), outlink dll.
  23. 23. LinkDB: database yang berisi daftar link (yang diketahui) ke setiap url. </li></ul>
  24. 24. <ul>Arsitektur Nutch – Komponen </ul><ul><li>Crawler/fetcher: program untuk me request halaman web, mem parse konten dan mengekstrak link darinya.
  25. 25. Solr, platform pencari enterprize yang berisi: </li></ul><ul><ul><li>S earcher: program untuk menemukan dokumen berdasarkan query.
  26. 26. In dex: database yang berisi indeks dari CrawlDB, Segments dan LinkDB. </li></ul></ul>
  27. 27. Arsitektur Nutch – Alur Proses <ul><li>inject : Url bibit di inject ke dalam database CrawlDB.
  28. 28. generate : Segmen baru yang akan di fetch , di generate dari CrawlDB ke dalam database Segments.
  29. 29. fetch & parse : Crawler mem fetch halaman web segmen, kontennya di parse dan disimpan kembali ke dalam segmen tersebut.
  30. 30. updatedb : CrawlDB di update dengan url-url baru dari segmen yang sudah di fetch .
  31. 31. Lakukan 2~4 berulang-ulang sesuai keperluan. </li></ul>
  32. 32. Arsitektur Nutch – Alur Proses <ul><li>invertlinks : Link dari segmen yang sudah di fetch dan di parse , di invert ke dalam database LinkDB.
  33. 33. index : Solr mengindeks database CrawlDB, Segments dan LinkDB ke dalam database Index.
  34. 34. Searcher Solr melakukan pencarian terhadap indeks. </li></ul>
  35. 35. <ul>Penjelajahan dengan Nutch </ul><ul>Penjelajahan Sederhana </ul>
  36. 36. <ul>Peng install an Nutch </ul><ul><li>Yang diperlukan: </li></ul><ul><ul><li>Java 1.6.x-up, baik yang berasal dari Sun atau IBM.
  37. 37. Kapasitas disk skala gigabyte atau lebih
  38. 38. Koneksi internet kecepatan tinggi </li></ul></ul><ul><li>Download distribusi binari Nutch 1.3.
  39. 39. http://nutch.apache.org/ </li></ul>
  40. 40. <ul>Peng install an Nutch </ul><ul><li>Peng install an </li></ul><ul><ul><li>Unzip distribusi binari Nutch ke $HOME/nutch-1.3 ← <NUTCH_HOME>
  41. 41. Set JAVA_HOME=<path_to_jre_or_jdk> </li></ul></ul><ul><li>Cek program Nutch dengan </li></ul><ul><ul><li>cd <NUTCH_HOME>/runtime/local ← <NUTCH_RUNTIME_HOME>
  42. 42. bin/nutch </li></ul></ul>
  43. 43. <ul>Peng install an Nutch </ul><ul><li>Akan ditampilkan petunjuk penggunaan: </li></ul>Usage: nutch [-core] COMMAND where COMMAND is one of: crawl one-step crawler for intranets readdb read / dump crawl db convdb convert crawl db from pre-0.9 format mergedb merge crawldb-s, with optional filtering readlinkdb read / dump link db inject inject new urls into the database generate generate new segments to fetch from crawl db freegen generate new segments to fetch from text files fetch fetch a segment's pages ...
  44. 44. <ul>File Konfigurasi </ul><ul><li><urls>/<plain> : url bibit
  45. 45. conf/regex-urlfilter.txt : penyaring url
  46. 46. conf/nutch-site.xml : </li></ul><ul><ul><li>User agent
  47. 47. Proxy </li></ul></ul>
  48. 48. <ul>URL Bibit ( urls/id.txt )‏ </ul><ul>http://www.bppt.go.id/ <li>http://www.batan.go.id/
  49. 49. http://www.lipi.go.id/
  50. 50. http://www.ristek.go.id/
  51. 51. http://www.pom.go.id/
  52. 52. :
  53. 53. :
  54. 54. : </li></ul>
  55. 55. <ul>Penyaring ( conf/regex-urlfilter.txt ) </ul><ul># Each non-comment, non-blank line contains a regular expression # prefixed by '+' or '-'. The first matching pattern in the file # determines whether a URL is included or ignored. If no pattern # matches, the URL is ignored. # skip file:, ftp:, & mailto: urls -^(file|ftp|mailto): # skip image and other suffixes we can't yet parse -.(gif|GIF|jpg|JPG|ico|ICO|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|mov|MOV|exe|png|PNG)$ </ul><ul># skip URLs containing certain characters as probable queries, etc. # -[?*!@=] # accept hosts in MY.DOMAIN.NAME +^http://([a-z0-9]*.)*id/ </ul><ul># skip everything else -. </ul>
  56. 56. <ul>User Agent ( conf/nutch-site.xml )‏ </ul><ul><property> <name>http.agent.name</name> <value>BPPT PTIK</value> <description>BPPT PTIK</description> </property> <property> <name>http.agent.description</name> <value>BPPT - Nutch experiment</value> <description> BPPT - Nutch experiment </description> </property> </ul>
  57. 57. <ul>Proxy ( conf/nutch-site.xml )‏ </ul><ul><property> <name>http.proxy.host</name> <value>192.73.25.1</value> <description>The proxy hostname.</description> </property> <property> <name>http.proxy.port</name> <value>8080</value> <description>The proxy port.</description> </property> </ul>
  58. 58. Penjelajahan Sederhana <ul><li>Penjelajahan sederhana dilakukan dengan perintah bin/nutch crawl
  59. 59. Perintah crawl akan melakukan alur proses berikut secara otomatis: </li></ul><ul><ul><li>inject
  60. 60. generate
  61. 61. fetch & parse
  62. 62. updatedb
  63. 63. invertlinks </li></ul></ul>Diulang-ulang sebanyak depth
  64. 64. <ul>Penjelajahan Sederhana </ul><ul><li><urls> : direktori url bibit
  65. 65. <crawldir> : direktori hasil penjelajahan
  66. 66. d : kedalaman penjelajahan
  67. 67. n : jumlah halaman maksimal di setiap level </li></ul><ul>bin/nutch crawl <urls> -dir <crawldir> -depth d -topN n </ul>
  68. 68. Penjelajahan Sederhana <ul><li>Akan dihasilkan direktori berikut: </li></ul><ul><ul><li>< crawldir>/crawldb
  69. 69. <cr awldir>/segments
  70. 70. <crawldir>/linkdb </li></ul></ul><ul><li>Cek hasil penjelajahan dengan: </li></ul><ul><ul><li>bin/nutch readdb < crawldir>/crawldb -stats </li></ul></ul>
  71. 71. Penjelajahan Sederhana <ul><li>Akan ditampilkan statistik seperti berikut: </li></ul>CrawlDb statistics start: crawldir2/crawldb Statistics for CrawlDb: crawldir2/crawldb TOTAL urls: 1172 retry 0: 1168 retry 1: 4 min score: 0.0 avg score: 0.012825939 max score: 1.095
  72. 72. Penjelajahan Sederhana status 1 (db_unfetched): 968 status 2 (db_fetched): 171 status 3 (db_gone): 12 status 4 (db_redir_temp): 8 status 5 (db_redir_perm): 13 CrawlDb statistics: done
  73. 73. <ul>Pencarian dengan Solr </ul>
  74. 74. Peng install an Solr <ul><li>Download distribusi binari Solr dari http://lucene.apache.org/solr/
  75. 75. Unzip distribusi Solr ke $HOME/apache-solr-3.X ← <SOLR_HOME>
  76. 76. Coba program Solr dengan: </li></ul><ul><ul><li>cd <SOLR_HOME>/example
  77. 77. java -jar start.jar
  78. 78. Buka http://localhost:8983/solr/admin/ </li></ul></ul>
  79. 79. Peng install an Solr
  80. 80. Nutch – Solr Integration <ul><li>Copy schema.xml Nutch ke Solr </li></ul><ul><ul><li>cp <NUTCH_RUNTIME_HOME>/conf/schema.xml <SOLR_HOME>/example/solr/conf/ </li></ul></ul><ul><li>Restart Solr </li></ul><ul><ul><li>cd <SOLR_HOME>/example/
  81. 81. (Kill start.jar )
  82. 82. ja va -jar start.jar </li></ul></ul>
  83. 83. Nutch – Solr Integration <ul><li>Run Solr Index command </li></ul><ul><ul><li>bin/nutch solrindex http://127.0.0.1:8983/solr/ <crawldir>/crawldb <crawldir>/linkdb <crawldir>/segments/*
  84. 84. SolrIndexer: starting at 2011-11-02 11:46:53
  85. 85. SolrIndexer: finished at 2011-11-02 11:47:01, elapsed: 00:00:07 </li></ul></ul>
  86. 86. Nutch – Solr Integration <ul><li>Cek hasil indexing , buka http://localhost:8983/solr/admin/stats.jsp
  87. 87. Cek di bawah tabel Core -> name: Searcher -> stats: numDocs harus bernilai lebih dari 0. </li></ul>
  88. 88. Nutch – Solr Integration
  89. 89. Pencarian dengan Solr <ul><li>Buka http://localhost:8983/solr/admin/
  90. 90. Di dalam tabel Make a Query -> Query String: ... masukkan kata kunci mis. bppt
  91. 91. Klik Search
  92. 92. By default, hasil pencarian akan dikembalikan dalam format XML. </li></ul>
  93. 93. Pencarian dengan Solr
  94. 94. Pencarian dengan Solr
  95. 95. Membuat Konten Terlihat <ul><li>Default schema.xml akan membuat halaman web dapat dicari, tetapi kontennya tidak dapat dilihat.
  96. 96. Untuk membuat konten terlihat, modifikasi field content pada schema.xml menjadi: </li></ul><ul><ul><li><field name=&quot;content&quot; type=&quot;text&quot; stored=&quot;true&quot; indexed=&quot;true&quot;/> </li></ul></ul>
  97. 97. Membuat Konten Terlihat <ul><li>Restart Solr </li></ul><ul><ul><li>cd <SOLR_HOME>/example/
  98. 98. (Kill start.jar )
  99. 99. ja va -jar start.jar </li></ul></ul><ul><li>Run Solr Index command </li></ul><ul><ul><li>bin/nutch solrindex http://127.0.0.1:8983/solr/ <crawldir>/crawldb <crawldir>/linkdb <crawldir>/segments/* </li></ul></ul>
  100. 100. Membuat Konten Terlihat
  101. 101. Membuat Konten Terlihat
  102. 102. <ul>Referensi </ul><ul><li>NutchTutorial http://wiki.apache.org/nutch/NutchTutorial </li></ul>

×