gpt4 book ai didi

java - Lucene中的"createComponents"有时只被调用,为什么?

转载 作者:行者123 更新时间:2023-12-01 12:01:24 25 4
gpt4 key购买 nike

我有自己的分析器和方法

protected TokenStreamComponents createComponents(final String fieldName, final Reader reader){}

但是我注意到这个方法并不是一直被调用。

如果给定的字符串是:“两个单词”,那么它将被调用。

如果给定的字符串是:“two-words”,则不会调用它。

如果给定的字符串是:“two/words”,则不会调用它。

但我想我可以在这个方法中使用标记器来解析我的字符串。

我的目标是:

“两个单词”应该被视为两个 AND 单词

“两个单词”也应该被视为两个 AND 单词

“two/words”也是如此,它也应该被解析为两个AND单词。

这就是我使用自己的分析器的原因。但令我感到非常惊讶的是,后两个示例中没有调用分析器。

我应该做什么?

最佳答案

分析器组件可以重复使用,因此,如果您一次索引多个文档,则只会调用一次 createComponents()

为了确保正确分析数据流,请在 Tokenizer 和/或过滤器的 incrementToken() 方法中使用某种日志记录。或者,更好的是,临时在过滤器链的顶部附加一个日志过滤器,并记录所有对 incrementToken()reset()close() 的调用end() 方法在分析阶段。这有助于更好地理解分词器和过滤器的生命周期。

关于java - Lucene中的"createComponents"有时只被调用,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27962356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com