【问题标题】:Hibernate search 6 custom index settingsHibernate search 6 自定义索引设置
【发布时间】:2022-01-26 14:22:59
【问题描述】:

我想配置一个自定义标记器,以便在带有 Spring Boot 2.5.x 的 Hibernate Search (6.0.8) 中的自定义分析器中使用。根据文档 (https://docs.jboss.org/hibernate/search/6.1/reference/en-US/html_single/#_custom_index_settings),我应该使用这样的自定义索引设置:

spring:
  jpa:
    properties:
      hibernate:
        search:
          enabled: true
          backend:
            indexes:
              Lemma:
                analysis:
                  configurer: class:**.**.CustomAnalysisConfigurer
                schema_management:
                  settings_file: custom/index-settings.json

我的 custom/index-settings.json 看起来像

{
  "analysis": {
    "tokenizer": {
      "custom_ngram_tokenizer": {
        "type": "ngram",
        "min_gram": "2",
        "max_gram": "3"
      }
    }
  }
}

CustomAnalysisConfigurer 看起来像

package ***.elasticsearch

import org.hibernate.search.backend.elasticsearch.analysis.ElasticsearchAnalysisConfigurationContext
import org.hibernate.search.backend.elasticsearch.analysis.ElasticsearchAnalysisConfigurer

class CustomAnalysisConfigurer : ElasticsearchAnalysisConfigurer {
    override fun configure(context: ElasticsearchAnalysisConfigurationContext) {
        context.analyzer("customAnalyzer").custom().tokenizer("custom_ngram_tokenizer")
    }
}

我想在我的实体中调用它 @FullTextField(analyzer = "customAnalyzer")

当我在CustomAnalysisConfigurer 中使用默认的可用标记器(如ngram)时,一切正常。但我希望 Hibernate 会使用来自custom/index-settings.json 的设置为我创建一个索引。看起来文件根本没有被拾取。也试过了:

spring:
  jpa:
    properties:
      hibernate:
        search:
          enabled: true
          backend:
            analysis:
              configurer: class:**.**.CustomAnalysisConfigurer
            schema_management:
              settings_file: custom/index-settings.json

设置对所有索引都有效。但这也没有想要的结果。

PS **.** 仅用于掩蔽 ;)

【问题讨论】:

    标签: spring-boot kotlin elasticsearch jpa hibernate-search


    【解决方案1】:

    这不适用于 6.0.x,但在文档中有所提及。我发现还有一个 6.1.x 版本的 Hibernate Search,而且这个版本按预期工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-05
      • 2018-07-23
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多