Pergunta

Eu estou procurando um servidor de pesquisa de texto completo stand-alone com as seguintes propriedades:

  • Deve funcionar como um servidor stand-alone que pode servir solicitações de pesquisa de vários clientes
  • Deve ser capaz de fazer "indexação granel", indexando o resultado de uma consulta SQL: dizer "SELECT id, text_to_index a partir de documentos";
  • Deve ser software livre e deve ser executado em Linux com o MySQL como banco de dados
  • Deve ser rápido (exclui pesquisa de texto completo interna do MySQL)

As alternativas que eu encontrei que têm estas propriedades são:

  • Solr (baseado em Lucene)
  • ElasticSearch (também baseado em Lucene)
  • Esfinge

As minhas perguntas:

  • Como eles se comparam?
  • que eu perdi alguma alternativa?
  • Eu sei que cada caso de uso é diferente, mas há certos casos em que eu definitivamente não deseja usar um determinado pacote?
Foi útil?

Solução

Estou usando Solr com sucesso por quase 2 anos agora, e nunca usou Esfinge, então estou obviamente tendenciosa. No entanto, vou tentar mantê-lo objetivo por citar os docs ou outras pessoas. Eu também vou tomar patches para a minha resposta: -)

Semelhanças:

  • Ambos Solr ea Esfinge satisfazer todas as suas necessidades. Eles são rápidos e projetado para indexar e pesquisar grandes massas de dados de forma eficiente.
  • Ambos têm uma longa lista de sites de alto tráfego de usá-los ( Solr , Esfinge )
  • Ambos oferecem suporte comercial. ( Solr , Esfinge )
  • Ambos oferecem cliente ligações API para várias plataformas / linguagens ( Esfinge , Solr )
  • Ambos podem ser distribuído para aumentar a velocidade ea capacidade ( Esfinge , Solr )

Aqui estão algumas diferenças:

Perguntas relacionadas:

Outras dicas

A menos que você precisa estender a funcionalidade de pesquisa de qualquer forma proprietária, Esfinge é sua melhor aposta.

vantagens Esfinge:

  1. Desenvolvimento e instalação é mais rápido
  2. Muito melhor (e mais rápido) agregação. Esta foi a característica do assassino para nós.
  3. Não XML. Isso é o que finalmente descartada Solr para nós. Tivemos que voltar um pouco grandes conjuntos de resultados (pense centenas de resultados) e, em seguida, agregá-los nós mesmos desde Solr agregação faltava. A quantidade de tempo para serializar de e para XML apenas o desempenho absolutamente morto. Para conjuntos de resultados pequenos, porém, ele estava perfeitamente bem.
  4. Melhor documentação que já vi em um aplicativo de código aberto

vantagens Solr:

  1. Pode ser estendido.
  2. pode batê-lo directamente a partir de uma aplicação web, ou seja, você pode ter autocomplete-like pesquisas acertar o servidor Solr diretamente via AJAX.

Nota:. Há muitos usuários com a mesma pergunta em mente

Assim, para responder ao ponto:

Qual e por quê?

  • Use Solr se você pretende usá-lo em seu web-app (site-exemplo do motor de busca). Ele vai certamente vir a ser grande, graças à sua API. Você vai precisar que o poder para um web-app.

  • Use Esfinge se você quiser pesquisar através de toneladas de documentos / arquivos rápida real. Ele indexa muito rápido também. Eu recomendaria não usá-lo em um aplicativo que envolve JSON ou XML parsing para obter os resultados da pesquisa. Usá-lo para pesquisas dB diretos. Ele funciona muito bem em MySQL.

Alternativas

Embora estes sejam os gigantes, há muito mais. Além disso, há aqueles que usá-los para alimentar os seus quadros personalizados. Então, eu diria que você realmente não ter perdido qualquer. Embora não haja um ElasticSearch que tem uma boa base de usuários.

Eu tenho usado o Sphinx por quase um ano agora, e isso tem sido incrível. Posso índice de 1,5 milhão de documentos em cerca de um minuto no meu MacBook, e ainda mais rápido no servidor. Também estou usando Esfinge para limitar as pesquisas para lugares dentro de latitudes e longitudes específicos, e é muito rápido. Além disso, como os resultados são classificados é muito tweakable. Fácil de instalar e configurar, se você ler um tutorial ou dois. Quase 1,0 status, mas os seus Release Candidates foram rocha sólida.

Lucene / Solr parece ser mais destaque e com mais anos de actividade e uma comunidade de usuários muito mais forte. imho se você pode obter passado as questões de configuração inicial como alguns parece ter enfrentado (não nós), então eu diria Lucene / Solr é sua melhor aposta.

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