繁体   English   中英

使用'sunspot_rails'gem更改SOLR schema.xml无效

[英]Changing SOLR schema.xml has no effect using 'sunspot_rails' gem

我正在尝试使用SOLR在我的rails应用程序中搜索部分单词。 这需要更改schema.xml文件。 正如其他人所建议的,我已经更新了我的“ app_root / solr / conf / 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 name="text" class="solr.TextField" omitNorms="false">
    <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StandardFilterFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.NGramFilterFactory" minGramSize="1" maxGramSize="15" />
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StandardFilterFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
</fieldType>

完成这些更改后,我运行rake命令rake sunspot:reindex并获得100%完整的重新索引结果。 然后,我启动服务器...但是,我仍然只收到完整单词的回复,而不是部分单词的回复。

以防万一,这是我的Style模型中的相关代码:

  searchable do
    text :full_name 
    #full_name is just one of Style's attribute columns
  end

和执行提取的代码...

if params[:sSearch].present?
  @search = Style.search do 
    fulltext params[:sSearch]
  end
  styles = @search.results
end

任何帮助将不胜感激。

有关参考,请参见:

https://github.com/sunspot/sunspot/blob/master/README.md

http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.EdgeNGramFilterFactory

我遇到了类似的问题,解决方案是重新启动您的solr实例,并使用bundle exec rake运行reindex,而不仅仅是rake

$ bundle exec rake sunspot:solr:stop 
$ bundle exec rake sunspot:solr:start 
$ bundle exec rake sunspot:reindex

除非从sunspot_solr-2.1.1开始的版本中没有任何更改,否则问题是Solr不会读取复制到[rails_root] / solr目录中的schema.xml。 它正在读取与gem文件一起放置的schema.xml(大致在这里:/gems/sunspot_solr-2.1.1/solr/solr/conf/schema.xml)。

我可以通过对该文件进行更改,重新启动服务器并在solr管理员界面中检查架构来验证这一点。

它在Mac和我使用的虚拟盒子上以相同的方式工作(Ubuntu 14.04 LTS-Trusty Tahr)。

(创可贴)解决方案是在那里编辑和使用文件。 不过,请先备份它。

您正在运行哪个版本的Solr? 我在使用Solr 4时遇到了类似的问题,它表明,一旦重启Solr Server,该架构便会更新,但索引不会根据该架构而更改。 在花费大量时间重新启动和重新编制索引之后,我使用更新后的配置创建了一个新核心(新集合),并且对我有用。

因此,尝试创建一个完整的新核心,看看是否有帮助。 祝好运!

如果您使用的是Solr 4,最好的解决方法是进入管理界面中的“分析”窗口,然后对索引和查询界面运行一些测试字符串。 您可以选择“文本”类型的任何字段,也可以在下拉列表中选择类型本身。

在您的特定设置上,您似乎在说,对于每个要匹配的单词,从1个前导字符(真的?)到15的任何起始子集。因此,如果有人搜索“ a”,您将得到所有单词从“ a”开始。 那是你要的吗?

在尝试对黑子零件进行故障排除之前,请尝试全部尝试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM