【问题标题】:EdgeNGramFilterFactory not working (not indexing?)EdgeNGramFilterFactory 不工作(不索引?)
【发布时间】:2011-04-08 16:32:43
【问题描述】:

我无法让 ngrams 工作。这是我的 schema.xml:

<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.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="25" />

  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StandardFilterFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" />
  </analyzer>
</fieldType>

我的数据库有一堆带有

的条目

“伊丽莎白”

“伊丽莎白”

当我尝试查询“伊丽莎白”时,我只得到“伊丽莎白”而不是“伊丽莎白”。 奇怪的是,当我查看 solr admin 时,Analysis 页面显示 EdgenGramFilterFactory 确实可用,并导致“Elizabeths”被扩展为

e el eli eliz eliza elizab elizabe elizabet 伊丽莎白

索引器似乎没有注意到这一点。当我将同义词过滤器从查询块移动到索引块时,我遇到了同样的问题。也就是说,当我在查询块中有同义词过滤器时,它可以工作,但是当我将它放在索引块中时,它就没有效果了。

我已重新启动 Sunspot 并多次重新编制索引。没有骰子。有任何想法吗?如何直接查看索引词列表?

【问题讨论】:

    标签: ruby-on-rails solr sunspot


    【解决方案1】:

    我想我找到了问题,它看起来像一个菜鸟错误。

    在我的模型中,是按照教程之一使用以下构造:

    class Institution < ActiveRecord::Base
     .
     .
     .
    end
    
    Sunspot.setup(Institution) do
      text :name
    end
    

    当我开始、停止或重新编制索引时,这似乎没有引发任何错误。停止 Solr 后我能够立即重新索引,这让我感到很奇怪。

    我换了

    class Institution < ActiveRecord::Base
      .
      .
      .
      searchable do
        text :name
      end
    endH
    

    当我这样做时,我发现停止 Solr 后我无法重新索引。然而,当我启动 Solr 并重新索引时,索引似乎是真的 刷新了,我的查询终于按预期运行了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-17
      • 2015-02-15
      • 1970-01-01
      • 1970-01-01
      • 2014-01-08
      • 2014-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多