Я использую SimpleLucene v1.0 и Lucene.Net v2.9.2.2 .
Сейчас я изучаю примеры и у меня возникли проблемы.
Первая проблема заключалась в том, что пакет nuget для SimpleLucene не работает. Когда вы попытаетесь использовать его с их примерами, он не скомпилируется, поскольку ищет какую-то другую версию. Это привело меня к необходимости получить исходный код и просто извлечь .dll, предоставив мне вышеуказанные версии.
Я считаю, что Lucene.Net v2.9.2.2
не самая новая версия. Это и тот факт, что они не исправили проблему с Nuget, заставили меня усомниться в том, что они все еще занимаются ее разработкой.
В своем первом примере 1015 * они упоминают, что вы можете использовать MemoryIndexWriter.
Создать IIndexWriter. Для индексов файловой системы вы можете использовать
DirectoryIndexWriter. Вы должны указать местоположение индекса. Примечание: A
MemoryIndexWriter можно найти в проекте тестов (для записи в
индекс в памяти)
Я искал тестовые файлы, но не уверен, как это работает. Мне интересно, может ли кто-нибудь объяснить преимущество или использовать MemoryIndexWriter по сравнению с простым хранением, а также предоставить простой пример того, как его использовать.
В них есть
public ProductQuery WithKeywords(string keywords)
{
if (!string.IsNullOrEmpty(keywords))
{
string[] fields = { "name", "description" };
var parser = new MultiFieldQueryParser(Version.LUCENE_29,
fields, new StandardAnalyzer(Version.LUCENE_29));
Query multiQuery = parser.Parse(keywords);
this.AddQuery(multiQuery);
}
return this;
}
Может кто-нибудь объяснить мне, для чего предназначен массив полей. Я не понимаю, для чего он используется.
Также эта библиотека экономит много времени, просто используя Lucene. Я начинаю смотреть на это так же, как просто прыгнул в SimpleLucene, когда сказал, что код Lucene обернут в более простые вызовы.