Person publication list (in profile page) not updated correctly after identifying an author
Compare the publications in
http://researchr.org/alias/dragan-gasevic
with
http://researchr.org/profile/dragangasevic/publications
All the 2011 publications of Gasevic have been identified and should occur in his profile publications list. However, I have identified some of them after the launch of the faceted search version of researchr. It seems that these publications have not been re-indexed. Probably because only the Author objects and not the publications have been touched. However, they have been added to the publication list.
Submitted by Eelco Visser on 15 July 2012 at 08:58
Issue Log
Actually, the reindex does not fail, but the difference between those pages is that the alias page uses the
PublicationList
of theAlias
(Alias.list
), where the profile page uses thePerson
’sPublicationList
(Person.list
).So it seems that the Person.list is not updated properly, probably also prior to the faceted search version.
Right. I have turned off some of the
refresh
code that updates publication lists on various events in order to optimize addition of publications to bibliographies.After adding a publication it does not show up in the publication list of the
Alias
for the authors of the publication, e.g. http://dutieq.st.ewi.tudelft.nl/publication/Visser2012I’ll try to revert this, hopefully without ruining the bibliography addition performance.
Bigger question: can we do the faceting of publication lists without the
PublicationList
type.
Just to give you a better picture regarding index updating. A searchable entity is represented as document in the index. The document of an entity instance gets replaced whenever a searchable property is marked dirty by hibernate search (i.e. changing/touching a non-searchable property won’t trigger reindexing).
This means that any change to a simple searchable property will trigger reindexing of the whole entity (changing a document in Lucene means replacing the whole document).Searchable reference/composition properties will only be marked dirty when the other side of the relation gets updated. Hibernate search can only determine this when there is an inverse relation declared on that property!
Derived properties also need special attention. In general, these will actually never be marked dirty by hibernate search. A change in the value of an expression that represents a derived property will only be propagated to the index whenever at least one other searchable property changes (i.e. when Hibernate search determines that an entity instance has one or more dirty properties).
Bigger question: can we do the faceting of publication lists without the PublicationList type.
I would say we can. But, with the above in mind, we need to make sure that the index gets updated properly.
The targeted results are
Publication
s in most pages. Any constraint that is needed to filter the right publications (e.g.matching authors.name: +someName
ormatching bibliographies.id: +someId
) should thus be indexed and updated properly. So for example, if the propertyPublication.bibliographies
is not part of an inverse relation, we need to manually ‘touch’ the publication so a searchable property gets dirty.But instead of using a workaround (changing a searchable property) to force reindexing of an entity instance, it would be better to have a
reindex
method for each entity. I’ll add this functionality in WebDSL.
Log in to post comments