我正在使用NUTCH 1.4和SOLR 3.3.0抓取并索引我的网站。在前端我使用php API SOLARIUM来查询SOLR。我默认搜索以下字段:
content -> of type Text
title -> of type Text
ur-> of type url
我想搜索关键字,但同时我想根据某些网址格式排除部分结果,而不会影响结果返回的总数。 (例如,我总是希望显示20个结果。)
如果有人知道使用SOLARIUM这样做的方法,那将非常好。但如果不是,我很好奇如何在SOLR中做到这一点。
我已经看过分面搜索,但我无法绕过它。如果有人能详细解释我会非常感激。
答案 0 :(得分:1)
我无法帮助您使用日光浴,但您的Solr查询应该相对简单:
q=+keyword -ur:exclude&rows=20
答案 1 :(得分:0)
http:// {url_endpoint} /?wt = json& rows = 20& start = 0& q = content: contentText OR title: titleText 或者ur: URL 的
在php中使用curl。
$solr_end_point = ''; //enter endpoint
$search_term = '';
$url_type = '';
$start = 0;
$ch = curl_init();
$query = urlencode("content:*{$search_term}* OR title:*{$search_term}* OR ur:*{$url_type}*");
curl_setopt($ch, CURLOPT_URL, "http://{$solr_end_point}/?wt=json&rows=30&start={$start}&q={$query}");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 2);
$result = curl_exec($ch);
curl_close($ch);
print_r($result); //output result (json)
$json_result = json_decode($result,true);
print_r($json_result); //output result as an array
exit();