相关疑难解决方法(0)

Hibernate搜索| ngram分析器与minGramSize 1

我的Hibernate Search分析器配置存在一些问题.我的一个索引实体("Hospital")有一个String字段("name"),它可以包含长度为1-40的值.我希望能够通过搜索一个字符找到一个实体(因为有可能,医院有单个字符名称).

@Indexed(index = "HospitalIndex")
@AnalyzerDef(name = "ngram",
        tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class),
        filters = {
                @TokenFilterDef(factory = StandardFilterFactory.class),
                @TokenFilterDef(factory = LowerCaseFilterFactory.class),
                @TokenFilterDef(factory = NGramFilterFactory.class,
                        params = {
                                @Parameter(name = "minGramSize", value = "1"),
                                @Parameter(name = "maxGramSize", value = "40")})
        })
public class Hospital {

        @Field(index = Index.YES, analyze = Analyze.YES, store = Store.NO, analyzer = @Analyzer(definition = "ngram"))
        private String name = "";
}
Run Code Online (Sandbox Code Playgroud)

如果我添加名为"My Test Hospital"的医院,Lucene索引如下所示:

1   name    al
1   name    e
1   name    es
1   name    est …
Run Code Online (Sandbox Code Playgroud)

lucene analyzer hibernate-search n-gram

1
推荐指数
1
解决办法
989
查看次数

标签 统计

analyzer ×1

hibernate-search ×1

lucene ×1

n-gram ×1