Firslty, zdaję sobie sprawę z kilku podobnych pytań podobnych do tego, ale sądzę, że ta sytuacja jest na tyle inna, by uzasadnić własne pytanie.Idealny sposób radzenia sobie z Solr powoduje PHP?
Używam indeksu Solr, poprzez instalację pomostu na serwerze LAMP. Obecnie używam funkcji simplexml_load_file
, aby wprowadzić wyniki wyszukiwania, a następnie przeanalizować je za pomocą kilku funkcji. Byłem zadowolony z tego procesu, dopóki nie zacząłem borykać się z podstawowym problemem.
Nazwy pól nie są przekazywane za pomocą funkcji simplexml. Na przykład ten wynik;
<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>
Będzie wyglądać tak w obiekcie 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
)
)
Kiedy pełny zestaw danych zostanie znaleziony, jest 11 bitów danych przechowywanych w tablicy, ale gdy brakuje niektórych dokumentów, dane porusza i mój parser pochodzi powieść.
Tak więc zajrzałem do bibliotek/klas, aby zrobić to poprawnie. Mianowicie, dwa główne; Apache Solr i solr-php-client, ale oba wydają się zbyt skomplikowane, z niewielką ilością rzeczywistych przykładów rzeczywistych i nie wyglądają tak, jakby obsługiwały różne rdzenie solr, z których korzystam kilka.
Co najlepiej używać? Utknąłem tu teraz, każda pomoc będzie MASOWO doceniona.
Dzięki!
Dzięki za nuqqsa post ! Czy mam rację, myśląc, że ścieżka var w tablicy opcji będzie ścieżką do rdzenia? Pliki solr są obecnie poza moim katalogiem głównym, więc muszę je przenieść w środku, jak sądzę? Jest jeszcze kilka q, ale spróbuję najpierw zajrzeć do dokumentacji, jeszcze raz dziękuję! – Tom
Te przykłady wywołują połączenie z interfejsem REST Solr w 'http: // localhost: 8080/solr', gdzie/solr (path) jest ścieżką względem domeny. To musi być dostosowane do miejsca, w którym znajduje się Twoja instancja API Solr. Co masz na myśli mówiąc, że pliki znajdują się poza katalogiem głównym? I tak, http://lucene.apache.org/solr/tutorial.html#Getting+Started to dobry punkt wyjścia! :) – nuqqsa
Solr-php-client używa JSON zamiast XML do parsowania odpowiedzi. Jest to w porządku dla większości przypadków, ale zrywa się, gdy program zapisujący odpowiedzi JSON Solr robi rzeczy, których nie powinien, np. Ustawiając identycznie nazwane klucze na tym samym poziomie. Dzieje się tak na przykład w przypadku wielokrotnych sortowań. –