[hibernate-issues] [Hibernate-JIRA] Commented: (HSEARCH-572) a plea to reconsider deprecating luceneOptions.getStore(), luceneOptions.getIndex() etc

Sanne Grinovero (JIRA) noreply at atlassian.com
Fri Aug 13 04:26:41 EDT 2010


    [ http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-572?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=38067#action_38067 ] 

Sanne Grinovero commented on HSEARCH-572:
-----------------------------------------

thanks for the example.
Consider that some Solr modules are an (optional) dependency of Hibernate Search already; it's used for example to ease the definition of Analyzers, so you might be able to use the Solr code directly.

It's not clear to me why you can't replace the lines
{noformat}final Map<String, Object> map = (Map<String, Object>) value;
for (final Map.Entry<String, Object> entry : map.entrySet()) {
   if (entry.getValue() == null){ continue; }
   final String propertyName =name+"."+ entry.getKey();
   final String propertyValue = entry.getValue().toString();
   final Field field = new Field(propertyName, propertyValue, luceneOptions.getStore(), luceneOptions.getIndex());
   if (luceneOptions.getBoost() != null){
      field.setBoost(luceneOptions.getBoost());
   }
   document.add(field);
   }
}
{noformat} 
with the code:
{noformat}final Map<String, Object> map = (Map<String, Object>) value;
		for ( final Map.Entry<String, Object> entry : map.entrySet() ) {
			if ( entry.getValue() == null ) {
				continue;
			}
			final String propertyName = name + "." + entry.getKey();
			final String propertyValue = entry.getValue().toString();
			luceneOptions.addFieldToDocument( propertyName, propertyValue, document );
		}{noformat}

BTW the latter is shorter and it benefits from isEmpty() check to skip it, supports compression on both Lucene <3 and >3 and might benefit from more features or optimizations in the future.

> a plea to reconsider deprecating luceneOptions.getStore(), luceneOptions.getIndex() etc
> ---------------------------------------------------------------------------------------
>
>                 Key: HSEARCH-572
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-572
>             Project: Hibernate Search
>          Issue Type: Deprecation
>          Components: mapping
>            Reporter: Jason Eacott
>            Assignee: Emmanuel Bernard
>             Fix For: 3.3.0
>
>
> Maybe I'm missing something, but for a fieldBridge I've noticed that it is now recommended to use luceneOptions.addFieldToDocument in place of document.add(new Field...
> This decision seems a bit overzealous and optimistic to me, especially given the current and significant lag in lucene version vs supported HibernateSearch version.
> for example - if luceneOptions.getStore(), luceneOptions.getIndex() etc are not deprecated then I can easily use them to create a custom field bridge for field types unknown to hibernateSearch. While these methods remain it is very easy to create a dynamic MapBridge for example that can choose to index a Map's key value pairs as Text or NumericFields as appropriate (Since HSearch currently has no support for NumericFields this is very useful). Without these methods, the options are much more limited. 
> So I'd just like to ask that either these methods remain, or an alternate arrangement be made available whereby any lucene field type can be added to a document with suitable index, store, boost, termvector etc. 
> Cheers.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list