Вопрос

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

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

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

Очевидно, что скорость имеет значение, так может ли он по-прежнему работать хорошо?

Редактировать: может ли NHibernate.Search работать для этого?

Редактировать: В итоге мы остановились на индексных серверах Solr, используемых нашим сайтом ASP.net, с Солрнет библиотека.

Это было полезно?

Решение

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

Другие советы

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

От сайт инкубатора Lucene.NET:

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

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

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

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

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

Сегодня это работает в форме Windows в качестве доказательства концепции.Два текстовых поля (поиск и запрос), одно для URL-адреса сервера и одно для запроса.Одно представление сетки данных.

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";

    }

Попал сюда в поисках сравнения SolrNet и SolrSharp, просто решил оставить здесь свои впечатления.

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

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

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

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

Почему бы не перейти с Java Lucene на версию Dot Net.Конечно, это инвестиции, но в основном это упражнение по замене классов.Последнее, что вам нужно, — это больше слоев, которые не несут никакой ценности, кроме склеивания.Меньше клея и больше вещей — вот к чему вам следует стремиться…

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top