Pergunta

Como é Lucene do ConstantScoreRangeQuery melhor do que o antigo RangeQuery ?

Em que caso você deve ainda usar usar RangeQuery?

Foi útil?

Solução

De acordo com a documentação RangeQuery em seu link, A ConstantScoreRangeQuery:

  • é mais rápido que RangeQuery.
  • não causar uma exceção BooleanQuery.TooManyClauses se o intervalo de valores é grande.
  • não influencia marcando baseado na escassez de termos individuais que podem corresponder.

Suponha que você está interessado em termos mais escassos sendo pontuaram mais alto (digamos que você está procurando em um intervalo de horas, mas quer as horas mais escassos para ser pontuaram mais - talvez você estiver procurando por um período de "lento" do dia para executar um processo de backup). Nesse caso, o RangeQuery mais velho parece preferível.

A próxima geração será a TrieRangeQuery , atualmente em seção contrib. Provavelmente será parte do 2,9 núcleo Lucene. Ele fornece consultas mais rápido alcance de ambos os outros métodos.

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