Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dlaczego ten rodzaj w Solr nie działa?

Jak wskazano w komentarzach dotyczących przepełnienia stosu, zapytanie przeglądarki różni się od zapytania opartego na kliencie php - aby usunąć to z równania, należy przetestować z tym poprawionym. Aby uzyskać takie same wyniki jak zapytanie oparte na przeglądarce, Twój kod php powinien wyglądać mniej więcej tak:

$solr = new Apache_Solr_Client(...);

$searchOptions = array(
  'sort' => 'mod_date desc'
);

$results = $solr->search("bmw", 0, 10, $searchOptions);

Zamiast tego wyobrażam sobie, że wygląda to bardziej tak:

$searchOptions = array(
    'fq' => 'category:"Bilar" + car_action:Sälje',
    'sort' => 'mod_date desc'
)

$solr->search("\*:*", 0, 10, $searchOptions);

Spodziewam się, że wyniki klienta php będą takie same, jak wyniki w przeglądarce i wyobrażam sobie, że to samo stanie się, gdy zrobisz to w odwrotny sposób - pobierz swoje bieżące parametry z klienta php i zastosuj je poprawnie do zapytanie oparte na przeglądarce.

Teraz, jeśli chodzi o Twój problem, nie widzisz właściwie posortowanych dokumentów.

Spróbowałbym tego zapytania, które jest odpowiednikiem kodu opartego na kliencie php:

http://localhost:8983/solr/select/?&q=%2A%3A%2A&fq=+category%3A%22Bilar%22+%2B+car_action%3AS%C3%A4ljes&sort=mod_date+desc

w porównaniu z tym zapytaniem, które przenosi zapytanie filtrujące do głównego zapytania:

http://localhost:8983/solr/select/?&q=+category%3A%22Bilar%22+%2B+car_action%3AS%C3%A4ljes&sort=mod_date+desc

i zobacz, czy jest różnica. Jeśli tak, to może to być błąd w sposobie wykorzystania i sortowania wyników z buforowanych zapytań filtrowanych po solr - co nie byłoby problemem z klientem, ale z samą usługą solr.

Mam nadzieję, że to przybliży Cię do odpowiedzi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jakie są dobre, szybkie i trwałe opcje przechowywania danych klucz->wartość?

  2. Wyświetlanie wszystkich nazw tabel w php z bazy danych MySQL

  3. PHP - łączenie się z bazą danych mysql z innego serwera

  4. Wybierz, gdzie numer wiersza =numer wiersza

  5. Jak sformatować datę ze znacznika czasu w PHP?