Pergunta

Eu estou procurando uma biblioteca de indexação de pesquisa de código aberto. Ele será usado para aplicação web incorporado por isso deve ter um tamanho pequeno código. De um modo preferido, escritos em C, C ++ ou PHP e não necessita de qualquer base de dados para ser instalado para o armazenamento de índices. Os índices devem ser armazenados em um arquivo em vez (por exemplo, xml, txt). Eu tentei olhar em algumas bibliotecas de busca famosos como xapian e CLucene, eles são bons, mas têm um tamanho de código relativamente grande para um sistema embarcado.

Esta será executado em uma plataforma Linux e será usado para arquivos de índice de HTML.

Quaisquer pensamentos sobre o que seria uma boa pesquisa de biblioteca / API de usar?

Graças.

Foi útil?

Solução

Outras dicas

Oh, cara. Há alguns. Em ordem decrescente de obscuridade ...

Eu tenho certeza que há uma tonelada mais lá fora, mas estes são os que eu tenho em cima da minha cabeça. Boa sorte:)

Primeiro: você tem que armazenar índices em algum lugar. Assim, um arquivo de dados será necessária a menos que queira memória apenas índices.

Para itens genéricos índice, eu recomendo que você pode sqlite: http://www.sqlite.org/. Eu até usá-lo somente no modo de memória quando eu tenho um monte de dados e eu preciso segurá-lo com vários índices.

Depende de suas necessidades. Uma distribuição completa do Lucene (Java) é de até 3MB arquivo JAR, mas na prática pode ser simplificada para bem menos de 1 MB. CLucene é provavelmente consideravelmente menor na prática. Quão baixo você precisa ir? ...

Swish-E é escrito em C e pode fazer o que quiser. Não requer um banco de dados, usa seu próprio formato de arquivo de índice de binário.

Eu também usei ht: // Dig mas parece que já faz um longo tempo desde que que o software foi mantida.

Ambos irão compilar em Linux e índice de HTML muito bem.

Uma terceira opção é SINO usado por AustLII . Contato com a equipe lá para ter certeza de obter a versão mais recente. Deve compilar em Linux sem muita dificuldade. Não é realmente concebido para sistemas embarcados (arquibancadas SINO para Tamanho não é objeto), mas tinha uma API decente sobre ele última vez que olhei e relativamente pequeno (por isso, não está desenhado para isso, mas pode funcionar tão bem). Voltado para HTML. indexação rápida bonita. Vale uma olhada, eu acho. (Divulgação: trabalhou há muito tempo atrás)

Finalmente, usamos Solr que é baseado em Lucene . Solr usa uma API simples, baseada sobre o destacamento documentos XML para um servidor. simples bastante para a interface com não importa o que seu idioma.

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