sql >> Database teknologi >  >> RDS >> Mysql

Hvorfor vil denne slags ikke virke i Solr?

Som påpeget i stack overflow-kommentarerne, er din browserforespørgsel anderledes end din php-klientbaserede forespørgsel - for at fjerne det fra ligningen bør du teste med dette rettet. For at få de samme resultater som den browserbaserede forespørgsel, skulle din php-kode have set sådan ud:

$solr = new Apache_Solr_Client(...);

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

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

I stedet forestiller jeg mig, at det mere ligner:

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

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

Det, jeg forventer, at du ser, er, at php-klientens resultater vil være de samme som de browserbaserede resultater, og jeg forestiller mig, at det samme ville ske, hvis du gjorde det på den modsatte måde - tag dine nuværende parametre fra php-klienten og anvendte dem korrekt på browserbaseret forespørgsel.

Nu til dit problem, kan du ikke se dokumenter sorteret korrekt.

Jeg ville prøve denne forespørgsel, som svarer til den php-klientbaserede kode:

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

versus denne forespørgsel, som flytter filterforespørgslen ind i hovedforespørgslen:

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

og se om der er forskel. Hvis der er det, så kan det være en fejl i, hvordan resultater fra cachede filtrerede forespørgsler bruges og sorteres efter solr - hvilket ikke ville være et problem for klienten, men selve solr-tjenesten.

Håber dette bringer dig tættere på en anser.



  1. Hvordan erklærer man variabel og bruger den i det samme Oracle SQL-script?

  2. Mysql 1 tilfældig række

  3. Brug af data beskyttet med en Azure Key Vault fra Linux

  4. Sådan bruges Alter Table Statement i SQL?