pesquisa da função solr por exemplo
alguém pode explicar com exemplo como a consulta da função Solr é usada. Eu não consegui encontrar nenhum exemplo concreto que mostra a diferença de resultado com consultas de função e sem consultas de função. Eu quero algo com URL de exemplo e o que é mostra em resultado de resposta.
1 answers
Uma consulta de função é uma consulta que invoca uma função num (ou mais) dos campos disponíveis. Você adiciona uma consulta de função se o valor que você tem em um campo tem que ser processado para obter o valor que você quer - assim como você faria em um sentido matemático.
[[12]}mostrar "a diferença entre uma consulta com consultas de função e sem" não é realmente possível, pois eles não fazem a mesma coisa. Você escolhe um (ou ambos) dependendo do que você precisa.Um exemplo adoptado a partir do manual de referência - Vamos imaginar que temos um conjunto de documentos que descrevem os usuários, e esses usuários têm dois campos - mails_read
e mails_received
. Para obter qualquer pessoa que tenha lido menos de 50% de seus e-mails, podemos aplicar uma consulta de filtro como uma função (com o analisador de consulta de frange) (fq
aqui significa consulta de filtro-o frange
é o que o torna uma consulta de função):
fq={!frange l=0 u=0.5}div(mails_read,mails_received)
Caso contrário, estaríamos limitados a receber aqueles que acabaram de ler uma gama específica de E-mails ou que receberam uma gama específica de E-mails. de E-mails-ou teríamos que indexar um valor que manteve o valor atualizado para mails_read / mails_received
cada vez que atualizamos o documento (que é uma estratégia perfeitamente válida, e geralmente mais eficiente).
Outro exemplo é usar uma consulta de função para impulsionar documentos, e o mais comum é impulsionar por recência (ou seja, que um documento mais recente recebe um impulso maior):
bf=recip(ms(NOW/HOUR,mydatefield),3.16e-11,1,1)
Isto aplica a função recip
À diferença (expressa em milisegundos) entre o mydatefield
campo e a hora actual.
recip : executa uma função recíproca com recip(x,m,A,b) implementando a/(m*x+b) onde m,A,b são constantes, e x é qualquer função arbitrariamente complexa.
Outro caso de uso fino é usar o campo especial _val_
- Se você pesquisar contra este campo mágico com uma função, o valor retornado pela função será usado como a pontuação do documento (em vez de afetá-lo através de impulsionar ou limitar o resultado conjunto de documentos como uma consulta).
_val_:"div(popularity, price)"
.. daria a pontuação do documento com base no resultado da divisão (o que os valores representam depende de você).