gpt4 book ai didi

ruby - 太阳黑子/Solr : non-alphabetical characters

转载 作者:数据小太阳 更新时间:2023-10-29 07:34:35 27 4
gpt4 key购买 nike

我将 Solr 与 Sunspot/dismax 结合使用。是否可以查询非字母字符?即:

~! @# $ % ^ & * ( ) _ + - = [ ] { } |\

我知道 +/- 必须转义,因为它们是 dismax 包含/排除运算符。但是当我搜索这些字符中的任何一个时,我都没有找到匹配项:

Foo.search { fulltext '=' }.results.length   # => 0
Foo.search { fulltext '\=' }.results.length # => 0

然而:

Foo.search { fulltext 'a'}.results.length    # => 30

这是我正在使用的分词器配置:

    <fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>

最佳答案

Solr 的 StandardTokenizer 删除所有“特殊字符”,因为它针对纯文本进行了优化。因此,例如“=”将不会被找到,因为它在索引期间从文本中被删除。

保留所有字符的分词器之一是 WhitespaceTokenizer , 仅在空白处拆分输入。您需要评估它是否是您问题的良好解决方案,因为它会产生如下标记:

20-year-old fox jumps over the lazy dog. -> '20-year-old', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog.'

您可能需要提供自己的分词器(无需实现分词器,您可以为拆分字符定义适当的正则表达式并使用 PatternTokenizer )或使用像 WordDelimiterFilter 这样的过滤器或 PatternReplaceFilter .

关于ruby - 太阳黑子/Solr : non-alphabetical characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11438453/

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