Как вы запускаете Lucene в .net? - PullRequest
       21

Как вы запускаете Lucene в .net?

9 голосов
/ 31 октября 2008

Lucene - отличный поисковик, но версия .NET стоит за официальным выпуском Java (последний стабильный выпуск .NET - 2.0, но последняя версия Java Lucene - 2.4, которая имеет больше функций).

Как ты справляешься с этим?

Ответы [ 4 ]

20 голосов
/ 31 октября 2008

Один способ, который я нашел, который был удивлен, мог сработать: создать .NET DLL из файла Java .jar! Используя IKVM , вы можете загрузить Lucene , получить файл .jar и запустить:

ikvmc -target:library <path-to-lucene.jar>

, который генерирует dll .NET, например: lucene-core-2.4.0.dll

Затем вы можете просто ссылаться на эту DLL из вашего проекта, и все готово! Существуют некоторые типы java, которые вам понадобятся, поэтому также укажите IKVM.OpenJDK.ClassLibrary.dll. Ваш код может выглядеть примерно так:

QueryParser parser = new QueryParser("field1", analyzer);
java.util.Map boosts = new java.util.HashMap();
boosts.put("field1", new java.lang.Float(1.0));
boosts.put("field2", new java.lang.Float(10.0));

MultiFieldQueryParser multiParser = new MultiFieldQueryParser
                      (new string[] { "field1", "field2" }, analyzer, boosts);
multiParser.setDefaultOperator(QueryParser.Operator.OR);

Query query = multiParser.parse("ABC");
Hits hits = isearcher.search(query);

Я никогда не знал, что вы могли бы легко взаимодействовать с Java .NET. Самое приятное то, что C # и Java "почти" совместимы с исходным кодом (что касается примеров Lucene). Просто замените System.Out на Console.Writeln:).

=======

Обновление: при создании библиотек, таких как подсветка Lucene, убедитесь, что вы ссылаетесь на базовую сборку (иначе вы получите предупреждения о пропущенных классах). Итак, маркер построен так:

ikvmc -target:library lucene-highlighter-2.4.0.jar -r:lucene-core-2.4.0.dll
1 голос
/ 19 ноября 2008

Lucene.net находится в стадии разработки и теперь имеет три коммиттера

1 голос
/ 31 октября 2008

Загрузите исходный код и соберите его. Я сделал это только в прошлые выходные, и это было легко. Совершенно никаких проблем. Источник находится на версии 2.3.1.

Я подписан на список рассылки и, судя по нему, Lucene.Net активно развивается.

0 голосов
/ 11 мая 2009

Таким образом я преобразовал Lucene 2.4 из jar в dll, но теперь он выдает ошибку «Тип или пространство имен Lucene не может быть найден». Я удалил старую DLL из проекта и добавил ссылку на новую. Я действительно хочу избавиться от старой версии, так как это заняло около 2 дней, и в конце во время оптимизации это дало некоторую ошибку, и теперь индекс не обновляется: S. Я где-то читал, что скорость индексации Lucene 2.4 во много раз выше, чем в старых версиях, если я использую 2.3.1 из SVN, это тоже будет быстрее?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...