Pergunta

Estou usando o NUTCH 1.4 e o SOLR 3.3.0 para rastrear e indexar meu site.No front-end utilizo a API php SOLARIUM para consultar o SOLR.Eu tenho os seguintes campos que pesquiso por padrão:

content -> of type Text

title -> of type Text

ur-> of type url

Quero pesquisar uma palavra-chave, mas ao mesmo tempo quero excluir alguns dos resultados com base em algum padrão de URL sem afetar o número total de resultados retornados.(Por exemplo, sempre quero mostrar 20 resultados.)

Se alguém souber uma maneira de fazer isso com SOLARIUM seria muito bom.Mas se não, estou curioso para saber como isso pode ser feito no SOLR.

Já olhei para a pesquisa facetada, mas não consegui entender.Se alguém puder explicar em detalhes eu realmente apreciaria.

Foi útil?

Solução

Não posso ajudá-lo com o Solarium, mas sua consulta no Solr deve ser relativamente simples:

q=+keyword -ur:exclude&rows=20

Outras dicas

http://{url_endpoint}/?wt=json&rows=20&start=0&q=content:Conteúdo do Texto OU título:títuloTexto OU você:url

  • O resultado wt=json estará no formato json
  • rows=20 o resultado será paginado por 20 registros por página
  • start=0 página para começar a exibir resultados
  • q = consulta para executar a pesquisa (certifique-se de escapar corretamente das entradas também * curinga para procurar qualquer coisa antes e depois)

Em php usando 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();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top