Firslty, sono a conoscenza di alcune domande simili sulla falsariga di questa, ma penso che questa situazione sia abbastanza diversa da giustificare la sua stessa domanda.Il modo ideale per gestire i risultati Solr in PHP?
Sto eseguendo un indice Solr, tramite l'installazione di un molo su un server LAMP. Attualmente utilizzo la funzione simplexml_load_file
per inserire i risultati della ricerca e quindi analizzarli tramite un paio di funzioni. Sono stato contento di questo processo fino a quando ho iniziato a imbattermi in un problema fondamentale.
I nomi dei campi non vengono passati attraverso la funzione simplexml. Ad esempio, questo risultato;
<doc>
<float name="score">0.73325396</float>
<str name="add1">Ravensbridge Drive</str>
<str name="comments">0</str>
<str name="company">Stratstone Lotus Leicester</str>
<str name="feed_id"/>
<str name="id">1711765</str>
<str name="pcode">LE4 0BX</str>
<str name="psearch">LE4</str>
<str name="rating">0</str>
</doc>
Apparirà così nell'oggetto simplexml;
[doc] => Array
(
[0] => SimpleXMLElement Object
(
[float] => 0.73325396
[str] => Array
(
[0] => Ravensbridge Drive
[1] => 0
[2] => Stratstone Lotus Leicester
[3] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => feed_id
)
)
[4] => 1711765
[5] => LE4 0BX
[6] => LE4
[7] => 0
)
)
Quando viene trovato un set di dati completo, v'è 11 bit di dati memorizzati nella matrice, ma quando alcuni sono mancanti, dati muove intorno e il mio parser si stacca.
Quindi, ho esaminato librerie/classi per farlo correttamente. Vale a dire, i due principali; Apache Solr e solr-php-client ma entrambi sembrano complicati, con una piccola quantità di esempi reali reali, e nessuno dei due sembra supportare diversi core solr, di cui io ne uso diversi.
Qual è la cosa migliore da usare? Sono rimasto piuttosto bloccato qui, ogni aiuto sarebbe stato MASSIVAMENTE apprezzato.
Grazie!
Grazie per la nuqqsa risposta ! Ho ragione nel pensare che il percorso var nell'array delle opzioni sarebbe il percorso verso il nucleo? I file solr sono attualmente al di fuori della mia radice al minuto, quindi dovrò spostarli all'interno, immagino? C'è ancora un paio di q, ma cercherò di riprendere la documentazione prima di tutto, grazie ancora! – Tom
Questi esempi effettuano una chiamata all'interfaccia REST di Solr all'indirizzo 'http: // localhost: 8080/solr', dove/solr (percorso) è il percorso relativo al dominio. Questo deve essere adattato ovunque si trovi l'istanza dell'API Solr. Cosa intendi con che i file siano al di fuori della radice? E sì, http://lucene.apache.org/solr/tutorial.html#Getting+Started è un buon punto di partenza! :) – nuqqsa
solr-php-client utilizza JSON anziché XML per le risposte di analisi. Questo va bene per la maggior parte dei casi, ma si interrompe quando lo scrittore di risposte JSON di Solr fa cose che non dovrebbe, come l'impostazione di chiavi con lo stesso nome sullo stesso livello. Questo accade con, ad esempio, più regole di confronto. –