Один способ, который я нашел, который был удивлен, мог сработать: создать .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