1

dataimporthandler のステータスは、インデックスが作成され、10 個のドキュメントが追加されたことを示していますが、追加されたドキュメントの一部である単語を検索しても結果が表示されません。私が与えると検索ですべてのレコードが表示されます

clob レコードの例:

<?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>

データ構成.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」を検索しても結果が表示されない理由がわかりません。どんな助けでも大歓迎です。

前もって感謝し
ます

4

1 に答える 1

0

修正することが 2 つあります。

まず、「string」フィールド タイプはドキュメント全体を 1 つのトークンとして扱います。テキスト フィールド タイプが必要です。

次に、Solr は CLOB 内の XML を解析せず、未加工のテキストとしてインデックスを作成し、そのフィールドのトークナイザーの選択によって指定されたとおりにトークンを分割します。たとえば、空白のトークナイザーを使用した場合、「115」は 1 つのトークンとして扱われ、「115」の検索は一致しません。

テストのために、トークナイザーの前にそのフィールド定義で HTMLStripCharFilterFactory を使用してみます。参照: http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.HTMLStripCharFilterFactory

これにより、かなりの量の XML が取り除かれます。特定の方法で処理したい場合は、インデックス作成のために XML の一部を抽出できる XPathEntityProcessor について学びたいと思うでしょう。参照: http://wiki.apache.org/solr/DataImportHandler#XPathEntityProcessor

于 2012-04-09T16:45:50.023 に答える