On May 11, 2012, at 6:07 PM, Sanne Grinovero wrote:
I was expecting you to argue about it,
:-)
and therefore I concede that
some docs clarification at least is strongly required,
at the very least
but I disagree on the expectations:
I see a fundamental difference in behaviour expectations between
a) "sync up database and index"
b) "index Entries A and B now"
In the first case it's up to Search to figure out what the correct set
of data is, and this would obviously be defined by the conventional
rules such as "all what's in the database", and implicitly by the
filter.
In the second case the user is explicitly demanding to index A and B;
just think about the meaning of using #index .. it should never be
needed if everything was perfectly in sync, so the intention of the
method is clearly an explicit override.
It is needed (unless you use the mass indexer) to build an initial index or
rebuild an existing one. Also if I call #index I say "index this entity considering
all the configuration which exists for this entity" (meaning the defined fields, but
also defined interceptors). How else can I rebuild the index for the blog example?
Makes sense?
No
Why would anyone use #index BTW ?
Fair point. However, atm we still offer both alternatives (mass indexer and explicit
#index)
and I would argue they should behave the same way. See section 6.3. Rebuilding the whole
index
in the docs.
--Hardy
Sanne
On 11 May 2012 16:54, Hardy Ferentschik <hardy(a)hibernate.org> wrote:
> Really? I would argue differently.
>
> Let's take the blog example where I only want to index blog entries which are
> published. Adding the interceptor and relying on automatic indexing will not index
un-published entries. Great.
> If I, however, want/ have to re-index my blog entries via the API the interceptor
does not apply? Why?
>
> IMO the interceptor has to apply for automatic index updates as well as explicit
index request. Conceptually
> (for a user) there is no difference between explicitly calling FulltextSession#index
or auto-indexing. That's
> exactly the type of confusion the user on the forum experienced.
>
> I think we should change this behavior.
>
> --Hardy
>
> On May 11, 2012, at 5:23 PM, Sanne Grinovero wrote:
>
>> As a user if I were asking to Search *explicitly* to index my entity,
>> I would not be pleased in the framework to override my request... I
>> think the code is correct, maybe it's worth pointing this out at least
>> on #index() javadoc?
>>
>> Sanne
>>
>> On 11 May 2012 14:48, Hardy Ferentschik <hardy(a)ferentschik.de> wrote:
>>> Hi,
>>>
>>> quick question regarding the indexing interceptor. Why is WorkType.Index
mapped to IndexingOverride.APPLY_DEFAULT -
>>>
https://github.com/hferentschik/hibernate-search/blob/master/hibernate-se...
>>>
>>> Shouldn't it be the same as ADD? Am I missing something? I am asking,
because of
https://forum.hibernate.org/viewtopic.php?f=9&t=1015173
>>>
>>> --Hardy
>