---
title: Hibernate SearchでSolrのTokenizerFactoryやFilterを使う
tags: []
categories: ["Programming", "Java", "org", "hibernate", "search"]
date: 2013-10-24T09:09:30Z
updated: 2013-10-24T09:09:30Z
---

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>

を追加
