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.

 2
Author: Jigar Gajjar, 2018-09-19

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ê).

 5
Author: MatsLindh, 2018-09-19 19:42:07