Pergunta

Eu tenho a configuração do Nutch e do Lucene para rastrear e indexar alguns sites e gostaria de usar um site .net em vez do site JSP que vem com o Nutch.

Alguém pode recomendar algumas soluções?

Já vi soluções em que havia um aplicativo em execução no servidor de indexação ao qual o site .Net usava comunicação remota para se conectar.

A velocidade é obviamente uma consideração, então isso ainda pode funcionar bem?

Editar: o NHibernate.Search poderia funcionar para isso?

Editar: Acabamos optando por servidores de índice Solr usados ​​pelo nosso site ASP.net com o solnet biblioteca.

Foi útil?

Solução

Em vez de usar Lucene, você poderia usar Sol indexar com nutch (veja aqui), então você pode se conectar facilmente ao Solr usando uma das duas bibliotecas disponíveis: SolrSharp e SolrNet.

Outras dicas

Caso não tenha ficado totalmente claro nas outras respostas, Lucene.NET e Lucene (Java) usam o mesmo formato de índice, portanto, você poderá continuar a usar seus mecanismos existentes (baseados em Java) para indexação, e, em seguida, use Lucene.NET dentro de seu aplicativo da web .NET para consulta o índice.

De o site da incubadora Lucene.NET:

Além das APIs e classes port para C#, o algoritmo do Java Lucene é portada para C# Lucene.Este significa um índice criado com Java Lucene é compatível com ida e voltacom o C# Lucene;tanto na leitura, redação e atualização.Na verdade a Lucene índice pode ser pesquisado simultaneamente e atualizado usando Java Lucene e C# Processos Lucene

Também estou trabalhando nisso.

http://today.java.net/pub/a/today/2006/02/16/introduction-to-nutch-2.html

Parece que você pode enviar sua consulta para o nutch e obter os resultados do RSS de volta.

editar:

Fiz isso funcionar hoje em formato de Windows como uma prova de conceito.Duas caixas de texto (searchurl e query), uma para a url do servidor e outra para a consulta.Uma visualização de datagrid.

private void Form1_Load(object sender, EventArgs e)
        {
            searchurl.Text = "http://localhost:8080/opensearch?query=";


    }

    private void search_Click(object sender, EventArgs e)
    {
        string uri;

        uri = searchurl.Text.ToString() + query.Text.ToString();
        Console.WriteLine(uri);

        XmlDocument myXMLDocument = new XmlDocument();

        myXMLDocument.Load(uri);

        DataSet ds = new DataSet();

        ds.ReadXml(new XmlNodeReader(myXMLDocument));

        SearchResultsGridView1.DataSource = ds;
        SearchResultsGridView1.DataMember = "item";

    }

Cheguei aqui procurando uma comparação entre SolrNet e SolrSharp, só pensei em deixar aqui minhas impressões.

Parece que o SolarSharp é um projeto morto (não foi atualizado há muito tempo), então a única opção é o SolarNet.

Espero que isso ajude alguém, eu teria deixado um comentário sobre a resposta aceita, mas ainda não tenho reputação suficiente :)

Em vez de usar o Solr, escrevi um indexador baseado em java que é executado em um cron job e um serviço da web baseado em java para consultas.Na verdade, não indexei páginas, mas sim diferentes tipos de dados que o site .net usa para construir as páginas.Portanto, existem quatro índices diferentes, cada um com uma estrutura de documento diferente, que podem ser consultados quase da mesma maneira (digamos:usuários, postagens, mensagens, fotos).

Ao definir um XSD para as respostas do serviço web consegui gerar classes em .net e java para armazenar uma representação dos documentos.O serviço web basicamente executa a consulta no índice correto e preenche o xml de resposta dos hits.O cliente .net analisa isso de volta em objetos.Há também uma interface json para qualquer JavaScript do lado do cliente.

Por que não mudar do java lucene para a versão dot net.Claro que é um investimento, mas é principalmente um exercício de substituição de classe.A última coisa que você precisa é de mais camadas que não agreguem nenhum valor além de apenas serem cola.Menos cola e mais coisas é o que você deve buscar...

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