|
View:
New views
9 Messages
—
Rating Filter:
Alert me
|
|
|
[ANN] Searchable Plugin 0.4 shipsSearchable Plugin 0.4 is finally here!
I guess most of you have been using the 0.4-SNAPSHOT for a while, so here's what's happened recently: * Upgraded to Compass 1.2.1 which includes Lucene 2.2 * Highlighting: http://grails.org/Searchable+Plugin+-+Searching#SearchablePlugin-Searching-Highlighting * Term Frequencies: http://grails.org/Searchable+Plugin+-+Searching#SearchablePlugin-Searching-termFreqs * The start of a mapping DSL: http://grails.org/Searchable+Plugin+-+Mapping#SearchablePlugin-Mapping-MappingDSL * Better default mapping of embedded domain classes: http://grails.org/Searchable+Plugin+-+Mapping#SearchablePlugin-Mapping-Defaultmappingrules Cheers, Maurice |
|
|
|
|
|
Re: [ANN] Searchable Plugin 0.4 shipsMy favorite plugin :D
Thanks Maurice. On 16/03/2008, Darryl Pentz <djpentz@...> wrote: > > *Darryl bows before the master* > > Thanks Maurice, the Searchable plugin is, I think, the most powerful and > impressive of all the Grails plugins and these improvements only serve to > entrench that fact. > > Regards, > Darryl > > > ----- Original Message ---- > From: Maurice Nicholson <me@...> > To: user@... > Sent: Sunday, March 16, 2008 8:04:19 PM > Subject: [grails-user] [ANN] Searchable Plugin 0.4 ships > > Searchable Plugin 0.4 is finally here! > > I guess most of you have been using the 0.4-SNAPSHOT for a while, so here's > what's happened recently: > > * Upgraded to Compass 1.2.1 which includes Lucene 2.2 > * Highlighting: > http://grails.org/Searchable+Plugin+-+Searching#SearchablePlugin-Searching-Highlighting > * Term Frequencies: > http://grails.org/Searchable+Plugin+-+Searching#SearchablePlugin-Searching-termFreqs > * The start of a mapping DSL: > http://grails.org/Searchable+Plugin+-+Mapping#SearchablePlugin-Mapping-MappingDSL > * Better default mapping of embedded domain classes: > http://grails.org/Searchable+Plugin+-+Mapping#SearchablePlugin-Mapping-Defaultmappingrules > > Cheers, > Maurice > > > > ________________________________ > Never miss a thing. Make Yahoo your homepage. --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email |
|
|
Re: [ANN] Searchable Plugin 0.4 shipsComputed constants.
Hi Maurice, congratulations for the final release! I still had lots of errors from the SVN version of a couple of days ago, but I'm gonna try this one. I was reading the updated documentation and I found the section about constants. I understand that you can index "custom" mappings to a domain instance, that's very useful. What I was wondering is whether those constant mappings could be computed. That is, computed out of other properties (for example a concatenation of two properties, or maybe a substring of one of them plus the temperature in Madagascar at that time... some crazy example :-)) Maybe it could accept a clousre, like: constant name: "myComputed" , value: { "bla"+tempMadagascar+(someProp*3) } I guess those constants are indexed when the object is saved/updated, so all the values are already there. BarZ Maurice Nicholson wrote: > Searchable Plugin 0.4 is finally here! > > I guess most of you have been using the 0.4-SNAPSHOT for a while, so > here's what's happened recently: > > * Upgraded to Compass 1.2.1 which includes Lucene 2.2 > * Highlighting: > http://grails.org/Searchable+Plugin+-+Searching#SearchablePlugin-Searching-Highlighting > * Term Frequencies: > http://grails.org/Searchable+Plugin+-+Searching#SearchablePlugin-Searching-termFreqs > * The start of a mapping DSL: > http://grails.org/Searchable+Plugin+-+Mapping#SearchablePlugin-Mapping-MappingDSL > * Better default mapping of embedded domain classes: > http://grails.org/Searchable+Plugin+-+Mapping#SearchablePlugin-Mapping-Defaultmappingrules > > Cheers, > Maurice > --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email |
|
|
Re: [ANN] Searchable Plugin 0.4 shipsif you do get errors with the latest version please shout :-)
yeah this is on the roadmap (in my head); the closure would be given an instance of the domain class so you could refer to the instance with it, eg, name: "bugId", value: { -> "${it.project.shortName}-${it.number}" } Compass has the concept of "dynamic-meta-data" for this but with that you basically define the expression as a string, which can get cumbersome for large expressions, because when configuring the mapping with native compass you're either in XML-land or annotation -land, neither of which are actually code :-) Regarding that trying to marshall null id bug you found, I could reproduce it easily with a Grails app, but then when I tried reproducing it in a paired down Java+Hibernate+Compass Test case, well of course I got a different problem! I think there are many more moving parts in the Grails app that I'm not yet aware of, so I need to do more investigation, but it's now the top priority for me. On 17/03/2008, Barzilai Spinak <barcho@...> wrote: Computed constants. |
|
|
Re: [ANN] Searchable Plugin 0.4 shipsBut I reckon it depends on the app you're writing as to which one(s) you find the most useful :-) On 16/03/2008, Darryl Pentz <djpentz@...> wrote:
|
|
|
Re: [ANN] Searchable Plugin 0.4 shipsWell. same problems with the new version :-(
Clean project, Grails 1.0.1 Two domain objects in a bi-directional one-to-many, very simple and classic example. class User { static searchable = true String name static hasMany = [albums:Album] } class Album { static searchable = true String title User owner static belongsTo= User } ------ The following code fails when saving the user: def u1= new User(name:'barcho king') def a1= new Album(title:'el album del pasto en el universo') def a2= new Album(title:'bart the king nenene') u1.addToAlbums(a1).addToAlbums(a2) u1.save() // FAILS HERE! The User is actually inserted into the database: --> insert into user (version, name) values (0, 'barcho king') But I think the error happens when cascading down to the albums: (example trace from within a grails controller/action, but the same problem happens from the grails console and the BootStrap) [102688] errors.GrailsExceptionResolver org.compass.gps.device.hibernate.HibernateGpsDeviceException: {hibernate}: Failed while creating [User : 1]; nested exception is org.compass.core.converter.ConversionException: Trying to marshall a null id [id] org.codehaus.groovy.runtime.InvokerInvocationException: org.compass.gps.device.hibernate.HibernateGpsDeviceException: {hibernate}: Failed while creating [User : 1]; nested exception is org.compass.core.converter.ConversionException: Trying to marshall a null id [id] [...] at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) [...] Caused by: org.compass.gps.device.hibernate.HibernateGpsDeviceException: {hibernate}: Failed while creating [User : 1]; nested exception is org.compass.core.converter.ConversionException: Trying to marshall a null id [id] at org.compass.gps.device.hibernate.dep.Hibernate3GpsDevice$Hibernate3GpsDevicePostInsert.onPostInsert(Hibernate3GpsDevice.java:186) at $Proxy6.saveOrUpdate(Unknown Source) [...] at UserController$_closure2.doCall(UserController.groovy:28) at UserController$_closure2.doCall(UserController.groovy) Caused by: org.compass.core.converter.ConversionException: Trying to marshall a null id [id] at org.compass.core.converter.mapping.osem.ClassMappingConverter.convertId(ClassMappingConverter.java:334) at org.compass.core.converter.mapping.osem.ClassMappingConverter.marshallIds(ClassMappingConverter.java:312) at org.compass.core.marshall.DefaultMarshallingStrategy.marshallIds(DefaultMarshallingStrategy.java:83) at org.compass.core.converter.mapping.osem.ReferenceMappingConverter.doMarshall(ReferenceMappingConverter.java:71) at org.compass.core.converter.mapping.osem.AbstractRefAliasMappingConverter.marshall(AbstractRefAliasMappingConverter.java:48) at org.compass.core.converter.mapping.osem.CollectionMappingConverter.marshallIterateData(CollectionMappingConverter.java:52) at org.compass.core.converter.mapping.osem.AbstractCollectionMappingConverter.marshall(AbstractCollectionMappingConverter.java:73) at org.compass.core.converter.mapping.osem.ClassMappingConverter.doMarshall(ClassMappingConverter.java:155) at org.compass.core.converter.mapping.osem.ClassMappingConverter.marshall(ClassMappingConverter.java:63) at org.compass.core.marshall.DefaultMarshallingStrategy.marshall(DefaultMarshallingStrategy.java:150) at org.compass.core.impl.DefaultCompassSession.create(DefaultCompassSession.java:276) at org.compass.gps.device.hibernate.dep.Hibernate3GpsDevice$Hibernate3GpsDevicePostInsert$1.doInCompassWithoutResult(Hibernate3GpsDevice.java:179) at org.compass.core.CompassCallbackWithoutResult.doInCompass(CompassCallbackWithoutResult.java:29) at org.compass.core.CompassTemplate.execute(CompassTemplate.java:137) at org.compass.core.CompassTemplate.execute(CompassTemplate.java:119) at org.compass.gps.impl.SingleCompassGps.executeForMirror(SingleCompassGps.java:164) at org.compass.gps.device.hibernate.dep.Hibernate3GpsDevice$Hibernate3GpsDevicePostInsert.onPostInsert(Hibernate3GpsDevice.java:175) ... 3 more I've tried to change the User's mapping to: static searchable = { albums(component: true) } But then it gives lots of errors when grails starts: [10266] context.ContextLoader Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'compassGps': Cannot resolve reference to bean 'compass' while setting bean property 'compass'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'compass': FactoryBean threw exception on object creation; nested exception is java.lang.NullPointerException and lots similar to the above. This *used* to work in the old (mid-2007) 0.4 snapshot, althouth there was some weird stuff with the termFreqs, giving higher results than it should. Probably some double-counting due to the component option. I've also tried several other options for mappings, with no luck. I even started to try annotation mapping but it gets too involved and complicated. Now, I really do wonder how are other people using this plugin if I can't make it work even for the simplest of examples (taken from the web page). I'd really like to use this plugin :-) BarZ Maurice Nicholson wrote: > if you do get errors with the latest version please shout :-) > > yeah this is on the roadmap (in my head); the closure would be given > an instance of the domain class so you could refer to the instance > with it, eg, > > name: "bugId", value: { -> "${it.project.shortName}-${it.number}" } > > Compass has the concept of "dynamic-meta-data" for this but with that > you basically define the expression as a string, which can get > cumbersome for large expressions, because when configuring the mapping > with native compass you're either in XML-land or annotation -land, > neither of which are actually code :-) > > Regarding that trying to marshall null id bug you found, I could > reproduce it easily with a Grails app, but then when I tried > reproducing it in a paired down Java+Hibernate+Compass Test case, well > of course I got a different problem! I think there are many more > moving parts in the Grails app that I'm not yet aware of, so I need to > do more investigation, but it's now the top priority for me. > > > On 17/03/2008, *Barzilai Spinak* <barcho@... > <mailto:barcho@...>> wrote: > > Computed constants. > Hi Maurice, congratulations for the final release! > I still had lots of errors from the SVN version of a couple of > days ago, > but I'm gonna try this one. > I was reading the updated documentation and I found the section about > constants. > I understand that you can index "custom" mappings to a domain > instance, > that's very useful. > What I was wondering is whether those constant mappings could be > computed. That is, computed out of other properties (for example a > concatenation of two properties, or maybe a substring of one of them > plus the temperature in Madagascar at that time... some crazy > example :-)) > Maybe it could accept a clousre, like: > constant name: "myComputed" , value: { > "bla"+tempMadagascar+(someProp*3) } > > I guess those constants are indexed when the object is > saved/updated, so > all the values are already there. > > BarZ > > > > Maurice Nicholson wrote: > > Searchable Plugin 0.4 is finally here! > > > > I guess most of you have been using the 0.4-SNAPSHOT for a while, so > > here's what's happened recently: > > > > * Upgraded to Compass 1.2.1 which includes Lucene 2.2 > > * Highlighting: > > > http://grails.org/Searchable+Plugin+-+Searching#SearchablePlugin-Searching-Highlighting > > * Term Frequencies: > > > http://grails.org/Searchable+Plugin+-+Searching#SearchablePlugin-Searching-termFreqs > > * The start of a mapping DSL: > > > http://grails.org/Searchable+Plugin+-+Mapping#SearchablePlugin-Mapping-MappingDSL > > * Better default mapping of embedded domain classes: > > > http://grails.org/Searchable+Plugin+-+Mapping#SearchablePlugin-Mapping-Defaultmappingrules > > > > Cheers, > > Maurice > > > --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email |
|
|
Re: [ANN] Searchable Plugin 0.4 shipsWell. same problems with the new version :-(
Clean project, Grails 1.0.1 Two domain objects in a bi-directional one-to-many, very simple and classic example. class User { static searchable = true String name static hasMany = [albums:Album] } class Album { static searchable = true String title User owner static belongsTo= User } ------ The following code fails when saving the user: def u1= new User(name:'barcho king') def a1= new Album(title:'el album del pasto en el universo') def a2= new Album(title:'bart the king nenene') u1.addToAlbums(a1).addToAlbums(a2) u1.save() // FAILS HERE! The User is actually inserted into the database: --> insert into user (version, name) values (0, 'barcho king') But I think the error happens when cascading down to the albums: (example trace from within a grails controller/action, but the same problem happens from the grails console and the BootStrap) [102688] errors.GrailsExceptionResolver org.compass.gps.device.hibernate.HibernateGpsDeviceException: {hibernate}: Failed while creating [User : 1]; nested exception is org.compass.core.converter.ConversionException: Trying to marshall a null id [id] org.codehaus.groovy.runtime.InvokerInvocationException: org.compass.gps.device.hibernate.HibernateGpsDeviceException: {hibernate}: Failed while creating [User : 1]; nested exception is org.compass.core.converter.ConversionException: Trying to marshall a null id [id] [...] at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) [...] Caused by: org.compass.gps.device.hibernate.HibernateGpsDeviceException: {hibernate}: Failed while creating [User : 1]; nested exception is org.compass.core.converter.ConversionException: Trying to marshall a null id [id] at org.compass.gps.device.hibernate.dep.Hibernate3GpsDevice$Hibernate3GpsDevicePostInsert.onPostInsert(Hibernate3GpsDevice.java:186) at $Proxy6.saveOrUpdate(Unknown Source) [...] at UserController$_closure2.doCall(UserController.groovy:28) at UserController$_closure2.doCall(UserController.groovy) Caused by: org.compass.core.converter.ConversionException: Trying to marshall a null id [id] at org.compass.core.converter.mapping.osem.ClassMappingConverter.convertId(ClassMappingConverter.java:334) at org.compass.core.converter.mapping.osem.ClassMappingConverter.marshallIds(ClassMappingConverter.java:312) at org.compass.core.marshall.DefaultMarshallingStrategy.marshallIds(DefaultMarshallingStrategy.java:83) at org.compass.core.converter.mapping.osem.ReferenceMappingConverter.doMarshall(ReferenceMappingConverter.java:71) at org.compass.core.converter.mapping.osem.AbstractRefAliasMappingConverter.marshall(AbstractRefAliasMappingConverter.java:48) at org.compass.core.converter.mapping.osem.CollectionMappingConverter.marshallIterateData(CollectionMappingConverter.java:52) at org.compass.core.converter.mapping.osem.AbstractCollectionMappingConverter.marshall(AbstractCollectionMappingConverter.java:73) at org.compass.core.converter.mapping.osem.ClassMappingConverter.doMarshall(ClassMappingConverter.java:155) at org.compass.core.converter.mapping.osem.ClassMappingConverter.marshall(ClassMappingConverter.java:63) at org.compass.core.marshall.DefaultMarshallingStrategy.marshall(DefaultMarshallingStrategy.java:150) at org.compass.core.impl.DefaultCompassSession.create(DefaultCompassSession.java:276) at org.compass.gps.device.hibernate.dep.Hibernate3GpsDevice$Hibernate3GpsDevicePostInsert$1.doInCompassWithoutResult(Hibernate3GpsDevice.java:179) at org.compass.core.CompassCallbackWithoutResult.doInCompass(CompassCallbackWithoutResult.java:29) at org.compass.core.CompassTemplate.execute(CompassTemplate.java:137) at org.compass.core.CompassTemplate.execute(CompassTemplate.java:119) at org.compass.gps.impl.SingleCompassGps.executeForMirror(SingleCompassGps.java:164) at org.compass.gps.device.hibernate.dep.Hibernate3GpsDevice$Hibernate3GpsDevicePostInsert.onPostInsert(Hibernate3GpsDevice.java:175) ... 3 more I've tried to change the User's mapping to: static searchable = { albums(component: true) } But then it gives lots of errors when grails starts: [10266] context.ContextLoader Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'compassGps': Cannot resolve reference to bean 'compass' while setting bean property 'compass'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'compass': FactoryBean threw exception on object creation; nested exception is java.lang.NullPointerException and lots similar to the above. This *used* to work in the old (mid-2007) 0.4 snapshot, althouth there was some weird stuff with the termFreqs, giving higher results than it should. Probably some double-counting due to the component option. I've also tried several other options for mappings, with no luck. I even started to try annotation mapping but it gets too involved and complicated. Now, I really do wonder how are other people using this plugin if I can't make it work even for the simplest of examples (taken from the web page). I'd really like to use this plugin :-) BarZ Maurice Nicholson wrote: > if you do get errors with the latest version please shout :-) > > yeah this is on the roadmap (in my head); the closure would be given > an instance of the domain class so you could refer to the instance > with it, eg, > > name: "bugId", value: { -> "${it.project.shortName}-${it.number}" } > > Compass has the concept of "dynamic-meta-data" for this but with that > you basically define the expression as a string, which can get > cumbersome for large expressions, because when configuring the mapping > with native compass you're either in XML-land or annotation -land, > neither of which are actually code :-) > > Regarding that trying to marshall null id bug you found, I could > reproduce it easily with a Grails app, but then when I tried > reproducing it in a paired down Java+Hibernate+Compass Test case, well > of course I got a different problem! I think there are many more > moving parts in the Grails app that I'm not yet aware of, so I need to > do more investigation, but it's now the top priority for me. > > > On 17/03/2008, *Barzilai Spinak* <barcho@... > <mailto:barcho@...>> wrote: > > Computed constants. > Hi Maurice, congratulations for the final release! > I still had lots of errors from the SVN version of a couple of > days ago, > but I'm gonna try this one. > I was reading the updated documentation and I found the section about > constants. > I understand that you can index "custom" mappings to a domain > instance, > that's very useful. > What I was wondering is whether those constant mappings could be > computed. That is, computed out of other properties (for example a > concatenation of two properties, or maybe a substring of one of them > plus the temperature in Madagascar at that time... some crazy > example :-)) > Maybe it could accept a clousre, like: > constant name: "myComputed" , value: { > "bla"+tempMadagascar+(someProp*3) } > > I guess those constants are indexed when the object is > saved/updated, so > all the values are already there. > > BarZ > > > > Maurice Nicholson wrote: > > Searchable Plugin 0.4 is finally here! > > > > I guess most of you have been using the 0.4-SNAPSHOT for a while, so > > here's what's happened recently: > > > > * Upgraded to Compass 1.2.1 which includes Lucene 2.2 > > * Highlighting: > > > http://grails.org/Searchable+Plugin+-+Searching#SearchablePlugin-Searching-Highlighting > > * Term Frequencies: > > > http://grails.org/Searchable+Plugin+-+Searching#SearchablePlugin-Searching-termFreqs > > * The start of a mapping DSL: > > > http://grails.org/Searchable+Plugin+-+Mapping#SearchablePlugin-Mapping-MappingDSL > > * Better default mapping of embedded domain classes: > > > http://grails.org/Searchable+Plugin+-+Mapping#SearchablePlugin-Mapping-Defaultmappingrules > > > > Cheers, > > Maurice > > > --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email |
|
|
Re: [ANN] Searchable Plugin 0.4 shipsI am experiencing the same problem :-(
I am trying to search multiple domain classes, but this prevents me from creating them. Does anyone have a solution for this problem? Cheers, Jeroen
|
| Free embeddable forum powered by Nabble | Forum Help |