【发布时间】:2013-01-15 08:22:03
【问题描述】:
我正在使用 Solr 的 DataImportHandler 来索引数据库中的某些数据。但是,数据库表方案使用CHAR-fields,所以它们的宽度是固定的,并且有一些尾随空格。
我正在尝试使用solr.TrimFilterFactory 删除这些尾随空格(修剪它们)。
在我的 Solr schema.xml 中,我使用以下字段类型来索引数据:
<fieldType name="string" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory" />
<filter class="solr.TrimFilterFactory" updateOffsets="true" />
</analyzer>
</fieldType>
所以现在我要添加一个文档,例如:
<add>
<doc>
<field name="test">Test </field>
</doc>
</add>
我希望测试字段中的尾随空格被删除,但是当我查询:test:Test* 时,我得到:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
</lst>
<result name="response" numFound="1" start="0">
<doc>
<str name="test">Test </str>
</doc>
</result>
</response>
如您所见,尾随空格没有被删除。我一定是做错了什么或误解了过滤器的概念。但我的期望是查询会返回:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
</lst>
<result name="response" numFound="1" start="0">
<doc>
<str name="test">Test</str>
</doc>
</result>
</response>
所以我的问题是如何确保在索引这些文档时,所有尾随空格都被删除。
【问题讨论】:
标签: solr indexing trim dataimporthandler