Pergunta

Vou começar com o caso de uso. Digamos que estou procurando um produto com um preço de US $ 500. Não me importo necessariamente se custa um pouco mais, ou um pouco menos, mas quero que os produtos nessa faixa de preço recebam uma pontuação de relevância geral mais alta.

Existe alguma maneira de fazer isso no Solr? Os documentos de relevância/morelikethis que eu já vi no site não parecem ter nenhum conceito de desvio de um determinado número.

Pergunta relacionada. Eu gostaria de poder modificar minha ponderação de pesquisa do Solr para obter essas duas consultas:

"Encontre câmeras com preços iguais" e "Encontre câmeras de destaque similar"

Olhando para o mais como esse manipulador, o algoritmo usado para calcular a relevância não parece que expõe nenhum botão de controle ao programador. Para as câmeras com preços iguais, por exemplo, gostaria de modificar a pontuação de relevância para aumentar as relevâncias dos itens no mesmo suporte de preço, mas ainda mantemos uma ponderação para os recursos. Para destaque da mesma forma, isso seria revertido. Ou seja, "Encontre câmeras de destaque da mesma forma, mas se um custa quarenta mil dólares, é menos relevante do que uma câmera semelhante ao meu preço selecionado" (deve ter mais recursos, mas talvez eles apenas coloquem spinners de cromagem na tampa da lente).

Foi útil?

Solução

No Solr Wiki, você verá alguns exemplos de como pode Pesquise por intervalo usando o field:[a TO b] sintaxe.

Você gostaria de acoplar isso com a classificação. Você também pode construir um Solr SearchComponent que poderia especificar um peso para uma faixa de preço, ou um RequestHandler. Um manipulador de solicitação é o que eu estava mais familiarizado. Um exemplo de campo 'qf' pode ser:

<str name="qf">
    productname^1.0 price^2.0 brand^0.5
</str>

Espero que isso possa começar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top