Pergunta

Em uma de nossas aplicações comerciais (Win32, escritos em Delphi) que gostaríamos de implementar a pesquisa de texto completo. A aplicação é armazenar os dados do usuário em algum tipo de formato binário que não é diretamente reconhecível como um texto.

Idealmente, eu gostaria de encontrar, quer uma solução em processo (DLL seria OK) ou um servidor local que eu poderia acessar via TCP (de preferência). A API deve permitir-me a apresentar uma informação textual para o servidor (junto com os metadados representando o blob binário veio) e, é claro, deve permitir-me para fazer uma pesquisa de texto completo com pelo menos um apoio mínimo para os operadores lógicos e substring pesquisa. É necessário suporte a Unicode.

Eu encontrei extensa lista de motores de busca na Stack Overflow ( Quais são algumas Pesquisa servidores lá fora? ), mas eu realmente não entendo qual desses motores poderia satisfazer minhas necessidades. Pensei em perguntar O Coletivo de opinião antes de eu passar um ou dois dias testando cada um deles.

Todas as sugestões?

Foi útil?

Solução

Há uma série de opções no mercado. Ou empenar totalmente produtos comerciais ou de código aberto variantes. Sua escolha de um provedor de pesquisa é muito dependente dos clientes que você está direcionando.

Microsoft tem uma versão gratuita expresso de seu Search Server. Tanto quanto eu sei a edição Express é limitado a executar a camada de aplicativo em um servidor.

Há também a Apache Lucene projeto que é open source. Ele tem uma API agradável que é fácil de usar e uma grande comunidade de usuários. Projeto original é baseado em Java, mas também há outra implementações tais como NLucene para .NET que eu usei pessoalmente.

Outras dicas

Eu recomendo ter um olhar para SQLite -. Pesquisa de texto completo está incluído na versão mais recente

Eu suponho que a resposta depende do seu db. Por exemplo SQL Server tem pesquisa de texto completo e também de Inglês consultas se houver necessidade.

Dê uma olhada utilizando PostgreSQL e tsearch.

Tente usar o PostgreSQL com tsearch

Esfinge é provavelmente a opção mais eficiente e escalável, enquanto SQLite -. FTS3 é a opção mais simples

Apesar de não ser em processo, Solr é muito rápido (baseado em Lucene) e facilmente acessível a partir de qualquer plataforma (HTTP)

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