Pregunta

Estoy usando Nutch 1.4 y Solr 3.3.0 para rastrear e indexar mi sitio web.En la parte frontal, uso el Solárium API PHP para consultar a SOLR.Tengo los siguientes campos en los que busco por defecto:

content -> of type Text

title -> of type Text

ur-> of type url

Quiero buscar una palabra clave, pero al mismo tiempo quiero excluir algunos de los resultados en función de algún patrón de URL sin afectar el número total de resultados.(Por ejemplo, siempre quiero mostrar 20 resultados.)

Si alguien sabe una forma de hacerlo con Solárium, sería realmente agradable.Pero si no, tengo curiosidad, cómo se puede hacer esto en SOLR.

Ya he visto la búsqueda facetada, pero no pude envolver mi cabeza alrededor.Si alguien puede explicar en los detalles, realmente lo apreciaría.

¿Fue útil?

Solución

No puedo ayudarlo con Solárium, pero su consulta SOLR debe ser relativamente sencilla:

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

Otros consejos

http:// {url_endpoint} /? wt= json & filows= 20 & start= 0 & q= contenido: contenttext o title: titletext o ur: url

  • WT= El resultado de JSON estará en formato JSON
  • filas= 20 resultado estará paginado por 20 registros por página
  • inicio= 0 Página para comenzar a mostrar los resultados
  • q= consulta para ejecutar la búsqueda (asegúrese de escapar correctamente las entradas también * comodín para buscar algo antes y después)

    en PHP con rizo.

    $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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top