IK.AM

@making's tech note


Hibernate SearchでSolrのTokenizerFactoryやFilterを使う

🗃 {Programming/Java/org/hibernate/search}
🗓 Updated at 2013-10-24T09:09:30Z  🗓 Created at 2013-10-24T09:09:30Z   🌎 English Page

memo

package com.company.demo.search;

import org.apache.solr.analysis.ASCIIFoldingFilterFactory;
import org.apache.solr.analysis.LowerCaseFilterFactory;
import org.apache.solr.analysis.NGramTokenizerFactory;
import org.hibernate.search.annotations.Factory;
import org.hibernate.search.cfg.SearchMapping;

/**
 * This configuration is picked up by hibernate search using the <code>hibernate.search.model_mapping</code>
 * code in <code>/META-INF/persistence.xml</code>
 */
public class SearchMappingFactory {
    @Factory
    public SearchMapping getSearchMapping() {
        SearchMapping mapping = new SearchMapping();
        mapping.analyzerDef("custom", NGramTokenizerFactory.class).tokenizerParam("maxGramSize", "40") //
                .filter(ASCIIFoldingFilterFactory.class) //
                .filter(LowerCaseFilterFactory.class);
        return mapping;
    }
}

/META-INF/persistence.xml

    <properties>
        <!-- ommited -->		
        <property name="hibernate.search.model_mapping" value="com.company.demo.search.SearchMappingFactory" />
    </properties>

を追加


✒️️ Edit  ⏰ History  🗑 Delete