Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Por que esse tipo no Solr não funciona?


Conforme apontado nos comentários de estouro de pilha, sua consulta do navegador é diferente da consulta baseada no cliente php - para remover isso da equação, você deve testar com isso corrigido. Para obter os mesmos resultados que a consulta baseada no navegador, seu código php deve ter parecido com isto:
$solr = new Apache_Solr_Client(...);

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

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

Em vez disso, imagino que se pareça mais com:
$searchOptions = array(
    'fq' => 'category:"Bilar" + car_action:Sälje',
    'sort' => 'mod_date desc'
)

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

O que espero que você veja é que os resultados do cliente php serão os mesmos que os resultados baseados no navegador, e imagino que o mesmo aconteceria se você fizesse o contrário - pegue seus parâmetros atuais do cliente php e aplique-os corretamente ao consulta baseada em navegador.

Agora, para o seu problema, você não vê os documentos classificados corretamente.

Eu tentaria esta consulta, que é o equivalente ao código baseado no cliente 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

versus esta consulta, que move a consulta de filtro para a consulta principal:
http://localhost:8983/solr/select/?&q=+category%3A%22Bilar%22+%2B+car_action%3AS%C3%A4ljes&sort=mod_date+desc

e veja se há diferença. Se houver, pode ser um bug em como os resultados de consultas filtradas em cache são usados ​​e classificados por solr - o que não seria um problema com o cliente, mas com o próprio serviço solr.

Espero que isso o aproxime de uma resposta.