2008-10-15 7 views
3

У меня есть настройка nutch и lucene для сканирования и индексирования некоторых сайтов, и я бы хотел использовать веб-сайт .net вместо сайта JSP, который поставляется с nutch.Интеграция Java Lucene с .Net

Может кто-нибудь порекомендует некоторые решения?

Я видел решения, на которых было приложение, запущенное на сервере индексирования, на котором использовался сайт .Net для подключения.

Скорость - это соображение, очевидно, так это может случиться так хорошо?

Редактировать: Возможно, NHibernate.Поиск подходит для этого?

Редактировать: Мы закончили работу с серверами индекса Solr, которые используются нашим сайтом ASP.net с библиотекой solrnet.

ответ

3

Вместо использования Lucene, вы могли бы использовать Solr индексировать с Nutch (см here), то вы можете подключить очень легко Solr, используя один из двух доступных библиотек: SolrSharp и SolrNet.

+0

выглядит очень хорошо, он будет иметь возможность принять мой Lucene индексы? – 2008-10-15 14:16:45

+0

Не пробовал, но он должен ... попробовать, это единственный способ быть уверенным :) – 2008-10-15 14:28:41

+0

Я тоже смотрю на совместимость с hadoop – 2008-10-15 16:50:09

0

Вместо использования Solr я написал индексирующее средство на основе java, которое запускается в задании cron, и веб-службу на основе Java для запросов. Я фактически не индексировал страницы так же, как различные типы данных, которые использует сайт .net для создания страниц. Таким образом, на самом деле существует 4 разных индекса, каждый из которых имеет другую структуру документа, о которой все могут быть запрошены примерно одинаково (скажем: пользователи, сообщения, сообщения, фотографии).

Определив XSD для ответов веб-службы, я смог генерировать классы в .net и java для хранения представления документов. Веб-сервис в основном запускает запрос по правильному индексу и заполняет ответ xml из хитов. Клиент .net анализирует данные обратно в объекты. Также есть json-интерфейс для любого клиентского JavaScript.

5

В случае, если это было не совсем ясно из других ответов, Lucene.NET и Lucene (Java) используют один и тот же индексный формат, поэтому вы должны продолжать использовать существующие (Java-механизмы) для индексации , а затем используйте Lucene.NET в своем веб-приложении .NET для запроса .

От the Lucene.NET incubator site:

В дополнение к API, и классы порта в C#, алгоритм Java Lucene портирован на C# Lucene. Этот означает индекс, созданный с помощью Java Lucene is совместимый с обратным адресом с C# Lucene; как при чтении, написания и обновления. На самом деле индекс Lucene можно одновременно искать и обновляется с использованием Java Lucene и C# Lucene процессы

1

Я также работаю над этим.

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

Кажется, вы можете отправить свой запрос Nutch и получить результаты RSS назад.

редактировать:

Получил эту работу сегодня в окне форме как доказательство концепции. Два текстовых поля (searchurl и query), один для URL-адреса сервера и один для запроса. Один вид 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"; 

    } 
0

Почему бы не переключиться с java lucene на dot net version. Конечно, это инвестиции, но в основном это упражнение замещения класса. Последнее, что вам нужно - это больше слоев, которые не добавляют никакого значения, кроме как быть клеем. Меньше клея и больше материала - вот то, на что вы должны стремиться ...

1

Выбрав здесь, выполнив поиск для сравнения SolrNet и SolrSharp, просто подумал, что оставлю здесь свои впечатления.

Похоже, что SolarSharp - это мертвый проект (не обновлялся в течение длительного времени), поэтому единственным вариантом является SolarNet.

Я надеюсь, что это поможет кому-то, я бы оставил комментарий к принятому ответу, но у меня не хватает репутации еще :)

 Смежные вопросы

  • Нет связанных вопросов^_^