On  Jun 10, 2009, at 19:12, Sanne Grinovero wrote:

you're right we need some way to know which filters don't need to be
applied on the "lowlevel" IndexSearcher,
but adding a flag breaks backwards compatibility, and using a type

We're breaking backward compatibility by changing the IndexShardingStrategy contract.

will get us to use ugly "instanceof"; they're not
bad solutions but what do you think of using a new option of the
@FullTextFilterDef ?

Right thats' what I meant by flag. I am on the fence. In the initial implementation I've committed, I've used a ShardSensitiveOnlyFilter interface

@FullTextFilterDef(name="customer", impl=ShardSensitiveOnlyFilter.class)

as opposed to
@FullTextFilterDef(name="customer", impl=void.class, shardSensitiveOnly=true)

or
@FullTextFilterDef(name="customer", shardSensitiveOnly=true)
if we start to default impl (which can lead to other user errors unfortunately)

Each solution has its set of ugliness, but I am open to suggesting arguments. Either solution would work for me

We could also consider that such a filter implementation is tightly
coupled to the ShardingStrategy itself; it could make
sense to have the filter+shardingStrategy implementations to be merged
in one class, and have a keyword ( "shardsFilter" ?)
to enable THE one sharding-based filter.

not sure what you mean. We can certainly reduce the amount of implementation work in IndexShardingStrategy#getDirectoryProvidersForQuery (using annotations to declare which filter we are itnerested in etc etc) but I'd rather know how people use this feature first before adding some convention over configuration.

This would reduce considerably the amount of code to be written to use
this feature; the filter parameters would be delegated directly to the
shardingStrategy,
which doesn't need to find out which filters it's interested in. There
would be no dump filter implementation at all, it just looks like you
use
a filter from an API point of view but you're actually configuring the
sharding strategy to return what you need.

Not sure how that eliminates the dump filter. The flag approach does, not the coupling between Sharding and Filter.
_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to