2012-04-09 61 views
1

结果dataimporthandler状态显示它了索引,以及10个文件被添加,但没有显示时,我搜索词添加文件的一部分的任何结果。如果我给寻找它显示所有记录CLOB记录Solr的没有显示后的分度表记录

例如:

<?xml version="1.0" encoding="UTF-8" ?> 
<message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="someurl" xmlns:csp="someurl.xsd" xsi:schemaLocation="somelocation jar: id="002" message-type="create"> 
<content> 
    <dsp:row> 
     <dsp:channel>100</dsp:channel> 
     <dsp:role>115</dsp:role>  
     </dsp:row> 
    <![CDATA[ <ol><li>java</li></ol><li>ASP</li>]]> 
</body></content></message> 

数据-config.xml中

<document name="doc"> 
      <entity name="MYCONTENT" transformer="ClobTransformer" 
         query="SELECT CID,XML FROM MYCONTENT"> 

       <field column="CID" name="CID"/> 
       <field column="XML" clob="true" name="XML"/>    
      </entity> 
     </document> 

schema.xml中

<field name="CID" type="string" indexed="true" stored="true" required="true"/> 
    <field name="XML" type="string" indexed="true" stored="true" required="true"/> 
    <dynamicField name="*" type="ignored" /> 
    <uniqueKey>CID</uniqueKey> 
    <defaultSearchField>XML</defaultSearchField> 

solrconfig.xml

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> 
     <lst name="defaults"> 
      <str name="config">/data-config.xml</str> 
      <str name="rows">10</str>  
     </lst> 
     </requestHandler> 

我不知道为什么它没有显示,当我搜索“Java”的“ASP”的结果。任何帮助是极大的赞赏。

在此先感谢
作者Srini

回答

0

你有两件事情来解决。

首先,“字符串”字段类型将整个文档视为单个标记。你需要一个文本字段类型。

其次,由您选择标记生成器为该领域的指定Solr的不解析XML在CLOB,它索引作为原始文本,分裂标记。例如,如果您使用空格标记器,则会将“115”视为单个标记,而搜索“115”则不匹配。

为了测试,我会尝试使用HTMLStripCharFilterFactory的标记生成器之前字段定义。请参阅:http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.HTMLStripCharFilterFactory

这应该剥去XML相当数量。如果您想以特定方式处理它,您可能需要了解XPathEntityProcessor,它可以提取部分XML进行索引。请参见:更多http://wiki.apache.org/solr/DataImportHandler#XPathEntityProcessor

+0

有点信息:您需要定义或自定义文本字段类型。 与Solr 3.5一起安装的示例schema.xml文件有几种文本字段,“text_general”和“text_en”是开始的好地方。您可以使用其中的一种,然后对其进行自定义。 – 2012-04-09 18:39:17

相关问题