簡體   English   中英

如何使用Apache Nutch和Solr搜尋磁鏈,以便它們在Solr查詢結果中可用?

[英]How to crawl magnet links with Apache Nutch and Solr so that they're available in Solr query results?

我使自己熟悉使用Apache Nutch和Solr進行爬網,但是意識到,雖然Solr的HTTP和HTTPS鏈接在查詢結果中可用,但content字段磁鏈卻沒有。 我將conf/regex-urlfilter.txt調整為

-^(file|ftp|mailto):

# skip image and other suffixes we can't yet parse
# for a more extensive coverage use the urlfilter-suffix plugin
-\.(gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|CSS|sit|SIT|eps|EPS|wmf|WMF|zip|ZIP|ppt|PPT|mpg|MPG|xls|XLS|gz|GZ|rpm|RPM|tgz|TGZ|mov|MOV|exe|EXE|jpeg|JPEG|bmp|BMP|js|JS)$

# skip URLs containing certain characters as probable queries, etc.
#-[?*!@=]

# skip URLs with slash-delimited segment that repeats 3+ times, to break loops
-.*(/[^/]+)/[^/]+\1/[^/]+\1/

# for linuxtracker.org
+^https?://*linuxtracker.org/(.+)*$
#+^magnet:\?xt=(.+)*$
    # causes magnet links to be ignored/not appear in content field
+^magnet:*$

# reject anything else
-.

而且不知道為什么content不應該包含磁力鏈接。 正如你所看到的,我調查這個使用http://linuxtracker.org其例如具有磁鐵連接磁體:XT =瓮:btih:ETDW2XT7HJ2Y6B4Y5G2YSXGC5GWJPF6P上http://linuxtracker.org/?page=torrent-details&id= 24c76d5e7f3a758f0798e9b5895cc2e9ac9797cf

使用bin/crawl之后,在pysolr查詢Solr時,存在磁鏈:

solr = pysolr.Solr(solr_core_url, timeout=10)
results = solr.search('*:*')
for result in results:
    print(result)

我在Ubuntu 17.04上使用Apache Nutch版本1.13-73-g9446b1e1和Solr 6.6.1。

短答案磁鐵鏈接不是“普通”鏈接,Nutch不支持開箱即用。

長答案:

更改的配置將在提取鏈接后應用,在這種情況下,如果使用的是parse-html則parse插件會嘗試評估可能的出站鏈接是否為有效鏈接,這基本上只會創建一個java.net.URL

另一方面,根據javadocs的說法, java.net.URL不支持磁力鏈接。

確保以下路徑的協議處理程序存在於搜索路徑中:

  http, https, ftp, file, and jar 

如果您使用的是parse-tika 則會發生類似的情況

一種選擇是讓您的自定義解析器為您處理此問題,請記住,在任何情況下,您都不希望跟隨(具有向外鏈接)磁鏈接,因為Nutch無法處理這些鏈接。

如果只想讓鏈接在Solr / ES中索引(用於搜索),則可以編寫自己的HtmlParseFilter並將這些鏈接添加到例如單獨的字段中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM