Estou procurando um servidor de pesquisa de texto completo independente com as seguintes propriedades:
- Deve operar como um servidor independente que possa atender a solicitações de pesquisa de vários clientes
- Deve ser capaz de fazer a "indexação em massa" indexando o resultado de uma consulta SQL: diga "SELECT id, text_to_index FROM documents;"
- Deve ser um software livre e deve ser executado no Linux com o MySQL como banco de dados
- Deve ser rápido (exclui a pesquisa interna de texto completo do MySQL)
As alternativas que encontrei com essas propriedades são:
- Solr (baseado em Lucene)
- ElasticSearch (também baseado em Lucene)
- Esfinge
Minhas perguntas:
- Como eles se comparam?
- Perdi alguma alternativa?
- Eu sei que cada caso de uso é diferente, mas existem certos casos em que eu definitivamente não gostaria de usar um determinado pacote?
Respostas:
Uso o Solr com sucesso há quase 2 anos e nunca usei o Sphinx, por isso sou obviamente tendencioso. No entanto, tentarei manter o objetivo citando os documentos ou outras pessoas. Também levarei remendos para a minha resposta :-)
Semelhanças:
Aqui estão algumas diferenças:
java -jar start.jar
). Sphinx não tem configuração adicional.Perguntas relacionadas:
fonte
A menos que você precise estender a funcionalidade de pesquisa de maneira proprietária, o Sphinx é sua melhor aposta.
Vantagens da esfinge:
Solr vantagens:
fonte
Nota: Existem muitos usuários com a mesma pergunta em mente.
Então, para responder ao ponto:
Qual e por quê?
Use o Solr se você pretende usá-lo em seu aplicativo Web (mecanismo de pesquisa de sites de exemplo). Definitivamente, será ótimo, graças à sua API. Você definitivamente precisará desse poder para um aplicativo da web.
Use o Sphinx se você quiser pesquisar toneladas de documentos / arquivos rapidamente. Ele indexa muito rápido também. Eu recomendaria não usá-lo em um aplicativo que envolva JSON ou analise XML para obter os resultados da pesquisa. Use-o para pesquisas diretas em dB. Funciona muito bem no MySQL.
Alternativas
Embora estes sejam os gigantes, há muito mais. Além disso, existem aqueles que os utilizam para alimentar suas estruturas personalizadas. Então, eu diria que você realmente não perdeu nada. Embora exista uma pesquisa elástica que tenha uma boa base de usuários.
fonte
Estou usando o Sphinx há quase um ano, e tem sido incrível. Posso indexar 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 o Sphinx para limitar pesquisas a locais dentro de latitudes e longitudes específicas, e é muito rápido. Além disso, a forma como os resultados são classificados é muito ajustável. Fácil de instalar e configurar, se você ler um tutorial ou dois. Quase com status 1.0, mas seus Candidatos a Liberação têm sido sólidos.
fonte
Lucene / Solr parece ser mais destacado e com mais anos de negócios e uma comunidade de usuários muito mais forte. imho se você pode superar os problemas de configuração inicial, como alguns parecem ter enfrentado (não nós), então eu diria que Lucene / Solr é sua melhor aposta.
fonte