【问题标题】:Hibernate search custom stop words listHibernate 搜索自定义停用词列表
【发布时间】:2017-11-04 23:23:51
【问题描述】:

我需要自定义停用词列表以按 Document 标题搜索。
我有以下映射:

@Entity
@Indexed
@AnalyzerDef(
        name = "documentAnalyzer",
        tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class),
        filters = {
                @TokenFilterDef(factory = ASCIIFoldingFilterFactory.class),
                @TokenFilterDef(factory = LowerCaseFilterFactory.class),
                @TokenFilterDef(
                        factory = StopFilterFactory.class,
                        params = {
                                @Parameter(name = "words", value = "stoplist.properties"),
                                @Parameter(name = "ignoreCase", value = "true")
                        }
                )
        }
)
public class Document {

    ...

    @Field(analyzer = @Analyzer(definition = "documentAnalyzer"))
    private String title;

    ...
}

stoplist.properties 文件位于resources 目录中,并且包含不同于StandardAnalyzer 默认值的停用词。

但如果我使用默认启用但在我的stoplist.properties 文件中不存在的停用词,则搜索不会返回任何结果,例如will这个词。

当前配置有什么问题? 如何让休眠搜索使用自定义停用词列表?

我使用的是 hibernate-search-orm 5.6.1 版本。

在集成测试中通过即时创建的索引验证结果:

@Before
public void setUpLuceneIndex() throws InterruptedException {
    FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManager);
    fullTextEntityManager.createIndexer().startAndWait();
}

【问题讨论】:

    标签: java hibernate lucene hibernate-search


    【解决方案1】:

    据我所知,您的配置看起来很正常。

    您是否在更改停用词配置后重新索引您的实体?您需要在索引时考虑新配置。

    如果你这样做了,但它仍然不起作用,请尝试在 StopFilterFactory 构造函数中添加一个断点并通知方法以查看发生了什么!

    【讨论】:

    • 实体在我用来验证搜索的集成测试(更新的问题描述和附加信息)中被索引。我查看了StopFilterFactorystopWords 属性填充了我的自定义属性文件中的单词。此解决方案仍然无效。
    • 很奇怪。尝试使用我们的测试用例模板重现它:github.com/hibernate/hibernate-test-case-templates/tree/master/…。它可能会帮助您找到问题,如果没有,我会看看!
    • 我刚刚向所有索引字段添加了自定义分析器,整个解决方案开始正常工作。感谢您提供测试用例模板。
    猜你喜欢
    • 1970-01-01
    • 2011-02-01
    • 2015-10-16
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    相关资源
    最近更新 更多