2014-12-05 3 views
3

У меня очень простой ES-клиент, который отправит запрос на локальный ES-сервер (версия 1.4.1 ES) и получит результаты и отобразит пользователя. Теперь я применил этот код к другому проекту X и попытался использовать его вместе с X, потому что мне нужны некоторые API от X. Теперь, когда я запускаю тот же код, когда я нахожусь в X, я получаю эту ошибку и не нажимаю, t знать, как разрешить. Не могли бы вы помочь мне в этом. Исключение в потоке «основного» java.lang.NoSuchFieldError: LUCENE_3_6Elastic Search Ошибка версии Lucene

at org.elasticsearch.Version.<clinit>(Version.java:45) 
at org.elasticsearch.node.internal.InternalNode.<init>(InternalNode.java:136) 
at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:159) 
at org.elasticsearch.node.NodeBuilder.node(NodeBuilder.java:166) 
at org.bmi.elasticsearch.ranking.TestClass2.main(TestClass2.java:54) 
+0

Отсутствует банку Lucene или несколько версий Lucene в проекте? – mindas

+0

, если один из предоставленных ответов решает вашу проблему, примите его, чтобы закрыть проблему. Благодаря ! – eliasah

ответ

12

кажется, что вы пытаетесь использовать Elasticsearch и Lucene в проекте в виде отдельных библиотек.

Elastissearch 1.4.1 основан на Lucene 4.10.2. Вы можете проверить страницу блога выпуска here для более подробной информации.

Чтобы решить вашу проблему, вам необходимо обновить версию библиотеки Lucene до 4.10 и использовать Version.LUCENE_CURRENT вместо LUCENE_3_6.

here Документация по объекту Lucene 4.10 Core API.

Я надеюсь, что это поможет. Не стесняйтесь комментировать, если у вас есть сомнения.

+1

Спасибо за помощь. Это действительно работает. И нет решения этой проблемы, кроме этой публикации. Не могли бы вы также рассказать мне, почему последняя версия не работает с v 1.5 для поиска эластичности? – 10101010

+1

Прошу прощения, я еще не могу ответить на вопросы elasticsearch v1.5. Это было выпущено совсем недавно, и я еще не взглянул на него. Попробуйте проверить, какую версию lucene использует последняя версия Elasticsearch. – eliasah

1

Такая же ошибка может возникнуть и в другом случае - если кто-то распакует новую версию ElasticSearch в том же каталоге, что и предыдущая версия. Затем он заканчивается двумя версиями банок в каталоге «ElasticSearch/lib». Ошибка при запуске.

В этом случае исправление должно состоять в чистой установке ElasticSearch без остатков.