Solr(通过 Lucene)支持不同的方式来指示字段在文档中的索引方式:索引、标记化、存储......
我正在寻找一种将字段存储在 Solr 中但未编入索引的方法。有没有办法在 Sunspot 中实现这一目标?
Solr(通过 Lucene)支持不同的方式来指示字段在文档中的索引方式:索引、标记化、存储......
我正在寻找一种将字段存储在 Solr 中但未编入索引的方法。有没有办法在 Sunspot 中实现这一目标?
Sunspot 的配置 DSL 支持其:stored => true
许多默认类型的选项。对于存储字符串的示例,它会比我的第一个示例简单得多:
searchable do
string :name, :stored => true
end
这会生成一个字段名称,name_ss
对应dynamicField
于 Sunspot 标准模式中已经存在的以下内容:
<dynamicField name="*_ss" stored="true" type="string" multiValued="false" indexed="true"/>
您还可以创建自己的自定义field
或dynamicField
在您的 schema.xml 中存储但不编入索引,然后使用 Sunspot 1.2:as
选项指定相应的字段名称。
例如,上面的一个更详细的版本。在您的架构中:
<dynamicField name="*_stored_string" type="string" indexed="false" stored="true" />
在你的模型中:
searchable do
string :name, :as => 'name_stored_string'
end
你可以试试 :
http://localhost:8983/solr/admin/luke?numTerms=0
并使用 xpath 或正则表达式读取具有架构属性值的字段:
<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>