java - HiberateSearch - 单个字段的多个分析器

标签 java lucene tokenize hibernate-search

如何对 Java 类中的单个字段使用多个分析器?

例如,目前我的类(class)如下所示:

public class User {
   @AnalyzerDef(name = "my_analyzer",
        tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class),
        filters = {...
   })
   @Analyzer(definition = "my_analyzer")
   private String name;
}

我想在 name 字段上定义另一个分析器。

最佳答案

您需要在属性上使用@Fields,如果@Field注释指定一个数组。每个@Field 又可以通过analyzer 属性指定自己的分析器。

您不能为单个字段指定多个顶级分析器。当然,在 @AnalyzerDef 中,您可以根据需要自由组装过滤器来自定义分析器行为。

什么最有意义取决于用例。

关于java - HiberateSearch - 单个字段的多个分析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19802079/

相关文章:

java - 数据报总是被完整接收吗?

json - Elasticsearch 中的映射和查询

java - 获取@ClassbBridge字段值

java - 从对 lucene 索引的查询中获取 vector 空间模型 (tf-idf)

java - 表 'USER' 上的 DELETE 导致外键违规

Java:将端口转发到 ServerSocket

python - 如何在 NLP 中的 TweetTokenizer 步骤中删除标点符号和数字?

c - 如何扫描输入字符串以获取 token 流

tensorflow - 在测试期间重新加载 Keras Tokenizer

Java 8 - 如何仅通过一次遍历从初始字符串构建字符串