gpt4 book ai didi

solr - 我们可以一起使用 WhitespaceTokenizerFactory 和 StandardToken 来只接受几个特定的​​符号吗?

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

在我的场景中,我需要同时使用 WhitespaceTokenizerFactory 和 StandardTokenizerFactory。有什么办法可以同时使用它们吗??我的场景是这样的:
1. 我使用 WhitespaceTokenizerFactory 来搜索 C# 或 C++ 之类的词。
2. 但是,在这种情况下,如果我搜索 SQL,(带逗号),则结果只会出现 SQL, 模式。
预期结果:搜索查询必须被视为 SQL

我的 schema.xml 如下所示

    <fieldType name="text_general" class="solr.TextField"  positionIncrementGap="100">

<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" preserveOriginal="1" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" preserveOriginal="1" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType>

最佳答案

如果您想使用两种不同的标记化方案,您应该将内容复制到具有所需分析设置的多个字段中。 Solr 使用 copyFields 使这变得容易.

因此您可以定义 fieldTypes:

<fieldType name="text_general" class="solr.TextField"  positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" preserveOriginal="1" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="text_standard" class="solr.TextField" positionIncrementGap="100">
<analyzer class="org.apache.lucene.analysis.standard.StandardAnalyzer"/>
</fieldType>

然后定义一个copyField如:

<copyField source="myTextField_whitespace" dest="myTextField_standard" />

关于solr - 我们可以一起使用 WhitespaceTokenizerFactory 和 StandardToken 来只接受几个特定的​​符号吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34265695/

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