При добавлении сериализатора не создаются документы lucene
Я создал индекс lucene в gfsh, используя следующую командуcreate lucene index --name=myLucIndex --region=myRegion --field=title
--analyzer=org.apache.lucene.analysis.en.EnglishAnalyzer --serializer=a.b.c.MyLatLongSerializer
Мой сериализатор выглядит следующим образом:
class MyLatLongSerializer implements LuceneSerializer<Book> {
@Override
public Collection<Document> toDocuments(LuceneIndex luceneIndex, Book book) {
logger.debug("inside custom lucene serializer ...");
// Writes fields of Book into a document
Document newDocument = new Document();
newDocument.add(new StoredField("title", book.getTitle()));
newDocument.add(new LatLonPoint("location", book.getLatitude(), book.getLongitude()));
return Collections.singleton(newDocument);
}
}
Мой файл конфигурации весенней загрузки выглядит следующим образом:
@Configuration
@ClientCacheApplication
@EnableClusterDefinedRegions(clientRegionShortcut = ClientRegionShortcut.CACHING_PROXY)
@EnableIndexing
public class BookConfiguration {
@Bean(name = "bookGemfireCache")
ClientCacheConfigurer bookGemfireCache(
@Value("${spring.data.geode.locator.host:localhost}") String hostname,
@Value("${spring.data.geode.locator.port:10334}") int port) {
// Get clientCache
}
@Bean
Region<Long, Book> bookRegion(ClientCache clientCache) {
logger.debug("inside regions ...");
return clientCache.getRegion("myRegion");
}
@Bean
LuceneService ukBikesLuceneService(ClientCache clientCache) {
return LuceneServiceProvider.get(clientCache);
}
}
Я загружаю данные в геодез, используя следующий код:
bookRegion.putAll(Map<bookId, Book>);
describe lucene index --name=myLucIndex --region=myRegion
затем документ № 0, но когда я создаю индекс lucene, используя следующую команду
create lucene index --name=myLucIndex --region=myRegion --field=title
--analyzer=org.apache.lucene.analysis.en.EnglishAnalyzer
затем снова загрузите данные, запустите
describe lucene index --name=myLucIndex --region=myRegion
затем документ № 96.
Я использую spring data geode 2.1.8.RELEASE, geode-core 1.9.0, lucene-core 8.2.0
Что мне здесь не хватает?
1 ответ
Apache Geode в настоящее время использует Apache Lucene версии 6.6.6, а вы используетеlucene-core 8.2.0
, который не имеет обратной совместимости с основными старыми версиями, такими как 6.X
, вот почему вы получаете эти исключения. Все должно работать нормально, если вы используете версию Lucene, поставляемую с Geode.
В качестве примечания: в настоящее время предпринимаются попытки обновить версию Lucene, используемую Geode, вы можете следить за прогрессом через GEODE-7039.
Надеюсь это поможет.