2013-05-29 4 views
3

У меня есть классы домена, который выглядит следующим образомGrails elasticsearch плагин с "текст" отображение

class Post { 

    String title 
    String body 


    //common 
    Date dateCreated 
    Date lastUpdated 

    //Mappings 
    static belongsTo = [user:User] 
    static hasMany = [comments:Comment,tags:TagBlog] 

    static mapping = { 
     body type:"text" 
    } 

    static constraints = { 
     title nullable:false,blank:false 
     body nullable: false, blank:false 
    } 
    static searchable = { 
     except = 'user' 

    } 

} 

и

class Comment { 

    String comment 
    int vote 

    //common 
    Date dateCreated 
    Date lastUpdated 

    static belongsTo = [post:Post,user:User] 

    static mapping = { comment type:"text" } 
    static constraints = { 
     comment nullable:false,blank:false 
     vote nullable:true,blank:true 
    } 
    static searchable = { 
     except = 'user' 

    } 
} 

И Ниже ошибка я получаю

| Error 2013-05-30 00:08:15,583 [elasticsearch[index]-pool-6-thread-2] ERROR index.IndexRequestQueue - Failed bulk item: MapperParsingException[object mapping for [comment] tried to parse as object, but got EOF, has a concrete value been provided to it?] 

I просмотрели многие сообщения в Интернете, но я не могу решить эту проблему !! До сих пор я предполагаю, что это может быть связано с моей двумя переменными с отображением type:"Text" Любая помощь будет действительно оценена.

Я использую следующие операции РЕПО как сейчас

mavenRepo "https://oss.sonatype.org/content/repositories/snapshots/" 
     mavenRepo 'https://repo.springsource.org/libs-snapshot/' 
     mavenRepo "http://maven.springframework.org/milestone/" 

Ниже отладочная информация я получаю после его включения для ES

2013-05-30 18:26:11,157 [localhost-startStop-1] DEBUG mapping.SearchableClassMappingConfigurator - Retrieved index settings 
2013-05-30 18:26:11,158 [localhost-startStop-1] DEBUG mapping.SearchableClassMappingConfigurator - Installing mappings... 
2013-05-30 18:26:11,163 [localhost-startStop-1] DEBUG mapping.SearchableClassMappingConfigurator - Index com.ecw.wellness does not exists, initiating creation... 
2013-05-30 18:26:11,163 [localhost-startStop-1] DEBUG mapping.SearchableClassMappingConfigurator - Waiting at least yellow status on com.ecw.wellness ... 
2013-05-30 18:28:07,884 [localhost-startStop-1] DEBUG mapping.SearchableClassMappingConfigurator - Index com.ecw.wellness already exists, skip index creation. 
2013-05-30 18:28:07,885 [localhost-startStop-1] DEBUG mapping.SearchableClassMappingConfigurator - [com.ecw.wellness.answer] => {com.ecw.wellness.answer={properties={answer={type=string, include_in_all=true, term_vector=with_positions_offsets}, votes={type=object}, dateCreated={type=date, include_in_all=true}, lastUpdated={type=date, include_in_all=true}, question={type=object}}}} 
2013-05-30 18:34:13,817 [localhost-startStop-1] DEBUG mapping.SearchableClassMappingConfigurator - Index com.ecw.wellness does not exists, initiating creation... 
2013-05-30 18:34:13,818 [localhost-startStop-1] DEBUG mapping.SearchableClassMappingConfigurator - Waiting at least yellow status on com.ecw.wellness ... 

ответ

1

EDIT:

Я вы узнали, что было исходной ошибкой: примитивные типы (то есть: свойство int vote в вашем домене комментариев) отображаются как «объект «плагин в ES, но свойство не сериализуется как объект, поэтому ES не знает, как его обрабатывать. Напечатать свойство голосования, как Integer vote, заставит его работать. я подал вопрос о репозитории GitHub для этого: https://github.com/mstein/elasticsearch-grails-plugin/issues/61

Оригинальный ответ (расширенной):

Какую версию плагина вы используете? Один из хранилища grails или непосредственно из хранилища github? В любом случае, не могли бы вы попытаться вытащить версию плагина 0.20.6.1-SNAPSHOT, которая волшебным образом появилась в центральном хранилище Grails?

runtime ":elasticsearch:0.20.6.1-SNAPSHOT" 

Примечание: Если вы не используете режим local и иметь свой собственный экземпляр ElasticSearch работает, попробуйте подобрать номер версии плагина Grails: 0.20.6.

Кроме того, если плагин зависает во время запуска с использованием режима node, это может означать, что он не может автоматически обнаружить кластер ES. В этом случае попробуйте использовать режим transport. FYI, плагин Grails ES будет использовать по умолчанию адрес localhost:9300, но это настраивается (см. Документацию плагина для этого).

+0

Я изначально использовал «runtime»: elasticsearch: 0.17.8.1 ". После того, как я попытался использовать 20.6.0 SNAPSHOT, мой сервер зависает в приложении «Запуск Grails» и никогда не продвигается вперед. – Sap

+0

У меня есть первоначальный вопрос и добавлены текущие репозитории maven, которые у меня есть. – Sap

+0

Я установил его снова, используя команду grails install-plugin и все еще застрял в сообщении «| Running Grails» за последние 20 минут! – Sap

Смежные вопросы