Solr Sunspot非索引字段

时间:2011-05-25 20:16:49

标签: lucene solr sunspot sunspot-rails

Solr(通过Lucene)支持不同的方式来指示字段在文档中编入索引的方式:索引,标记化,存储,......

我正在寻找一种方法来存储存储在Solr但未编入索引的字段。有没有办法在太阳黑子中实现这一目标?

2 个答案:

答案 0 :(得分:2)

Sunspot的配置DSL为其许多默认类型支持:stored => true选项。对于存储字符串的示例,它将比我的第一个示例简单得多:

searchable do
  string :name, :stored => true
end

这将生成一个字段名称name_ss,对应于太阳黑子标准架构中已存在的以下dynamicField

<dynamicField name="*_ss" stored="true" type="string" multiValued="false" indexed="true"/>

您还可以在schema.xml中创建自己的自定义fielddynamicField以进行存储但不编制索引,然后使用Sunspot 1.2 :as选项指定相应的字段名。

例如,上面的更详细的版本。在您的架构中:

<dynamicField name="*_stored_string" type="string" indexed="false" stored="true" />

在你的模特中:

searchable do
  string :name, :as => 'name_stored_string'
end

答案 1 :(得分:0)

您可以尝试:

http://localhost:8983/solr/admin/luke?numTerms=0

使用xpath或regex读取具有架构属性值的字段:

<str name="I">Indexed</str>
<str name="T">Tokenized</str>
<str name="S">Stored</str>

你会得到类似的东西:

<lst name="field">
<str name="type">stringGeneralType</str>
<str name="schema">--SM---------</str>
</lst>