gpt4 book ai didi

ruby-on-rails - 你如何启用与 "sunspot for rails"的部分匹配?

转载 作者:行者123 更新时间:2023-12-04 17:54:14 24 4
gpt4 key购买 nike

我刚刚完成了 sunspot_rails 的设置,除了一件事外,它似乎运行良好。
在我制作了如下 3 条记录后

  • 姓名=约翰
  • 姓名=约翰2
  • 姓名=约翰3

  • 当我用关键字“John”搜索时,只显示第一条记录。看起来完全匹配。
    我希望所有这些都显示为搜索结果。

    这应该是默认发生的吗?
    还是我设置错了??

    最佳答案

    如果你想在全文搜索中返回子字符串,你可以看看

    https://github.com/sunspot/sunspot/wiki/Matching-substrings-in-fulltext-search

    您也可以添加文件 sunspot_solr.rb用于在 myapp/config/initializers/中对结果进行分页:

    Sunspot.config.pagination.default_per_page = 100

    对于这种情况,返回 100 个结果。

    添加:

    您的 schema.xml文件成立于 yourappfolder/solr/conf
    您也可以添加 <filter class="solr.NGramFilterFactory"/>匹配任意子字符串。

    这是我对 schema.xml 的特殊配置:
    <fieldType name="text" class="solr.TextField" omitNorms="false">
    <analyzer>
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StandardFilterFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
    </fieldType>
    <fieldtype class="solr.TextField" name="text_pre" positionIncrementGap="100">
    <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.NGramFilterFactory" minGramSize="2" maxGramSize="10"/>
    <filter class="solr.ISOLatin1AccentFilterFactory"/>
    <filter class="solr.TrimFilterFactory" />
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="10"/>
    </analyzer>
    <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.ISOLatin1AccentFilterFactory"/>
    <filter class="solr.TrimFilterFactory" />
    </analyzer>
    </fieldtype>

    对我来说,它确实适用于所有关键字的完整字符串和子字符串。请不要忘记重新启动服务器并重新索引您的模型以使更改生效。

    问候!

    关于ruby-on-rails - 你如何启用与 "sunspot for rails"的部分匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11167252/

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