2つの異なる分野で2つの異なるものを検索する方法?
質問
私は私のウェブサイトをクロールしてインデックスするために、Nutch 1.4とSolr 3.3.0を使用しています。フロントエンドで、PHP APIのサンルームを使用してSOLRに問い合わせます。デフォルトで検索する次のフィールドがあります。
content -> of type Text
title -> of type Text
ur-> of type url
.
キーワードを検索したいが、結果の総数の総数に影響を与えることなく、いくつかのURLパターンに基づいていくつかの結果を除外したいと考えています。(例えば、私は常に20の結果を表示したいです。)
誰もがサンルームを使ってこれをする方法を知っている場合それは本当に素晴らしいでしょう。しかし、そうでなければ、私はこれがSolrでどれほどすることができるかは興味があります。
私はすでにファセット検索を見ましたが、私はその周りに頭を包むことができませんでした。誰かが詳細に説明できるならば、私は本当にそれを感謝します。
解決
サンルームを使うことはできませんが、あなたのSOLRクエリは比較的簡単なべきです:
q=+keyword -ur:exclude&rows=20
. 他のヒント
http:// {url_endpoint} /?wt= json&rows= 20&start= 0&q=コンテンツ: contentText またはtitle: titletext またはur: url
- wt= JSON結果はJSON形式になります。
- Rows= 20の結果は1ページあたり20レコードでページ
- start= 0結果の表示を開始する
- q=検索を実行するためのクエリ(入力も正しくエスケープするように* WIRDCARDも前後に探す)
カールを用いたPHPの
.$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();
所属していません StackOverflow