Domanda

Sto usando Nuch 1.4 e SOLR 3.3.0 per strisciare e indicizzare il mio sito web.Sul front-end uso il solarium API PHP per interrogare in solr.Ho i seguenti campi che sto cercando per impostazione predefinita:

content -> of type Text

title -> of type Text

ur-> of type url
.

Voglio cercare una parola chiave ma allo stesso tempo voglio escludere alcuni dei risultati in base a un modello URL senza influire sul numero totale di risultati di ritorno dei risultati.(Ad esempio, voglio sempre mostrare 20 risultati.)

Se qualcuno conosce un modo per farlo con il solarium sarebbe davvero carino.Ma se non sono curioso di sapere come questo può essere fatto in solr.

Ho già guardato la ricerca sfaccettata ma non potevo avvolgermi la testa.Se qualcuno può spiegare in dettaglio, lo apprezzerei davvero.

È stato utile?

Soluzione

Non posso aiutarti con il solarium, ma la tua query SOLR dovrebbe essere relativamente semplice:

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

Altri suggerimenti

http:// {url_endpoint} /? wt= json & righe= 20 e start= 0 & q= contenuto: contentText o Titolo: titletExt o ur: URL

    .
  • wt= json risultato sarà in formato JSON
  • righe= 20 risultati saranno paginati da 20 record per pagina
  • Start= 0 Page per avviare Visualizzazione dei risultati
  • q= query per eseguire la ricerca (assicurati di sfuggire correttamente in ingressi anche * jolly per cercare qualcosa prima e dopo)

    in 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();
    
    .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top