Estou tentando verificar se esse recurso é possível implementar com Solr.
Tenho um campo de texto definido e no analisador de consultas defini, entre outros StopFilterFactory e um PorterStemFilterFactory.
eu uso Edsimax como o manipulador de solicitação.
na minha implementação atual, se eu pesquisar:
q = "esta é uma consulta fraseada" isso não é fraseado
a consulta lucene será: (desculpe-me pela pseudo sintaxe)
text: "this?? frase query" | texto: este | texto: frase
onde o que eu gostaria de obter é:
text: "esta é uma consulta de fraseamento" | texto: este | texto: frase
Em outras palavras, eu gostaria de definir o comportamento de envolver uma frase com aspas para ser:
um documento só corresponderá se a frase inteira, sem qualquer tokenização, aparecer nele.
Eu entendo que talvez seja possível definindo um campo adicional que não passará por nenhum processamento e aumentando seu boost na configuração do edismax.
mas isso retornará correspondências para documentos que não incluem a frase exata.
Isso pode ser implementado no Solr? Como?
Respostas:
2 para resposta № 1Que tal combinar diferentes partes da consulta em campos separados? Seja através de um fq
filtrar contra text_exact
ou por meio de sintaxe de pesquisa regular para pontuação também: text_exact:"this is a phrasing query" this is not phrasing
onde os últimos termos devem ser pesquisados no campo de pesquisa padrão ou qf
iirc.