0

私はsolr5.3を使用しています。

「DataImportHandler」を使用してウィキペディアのページの記事のダンプを solr にアップロードしようとしていますが、クエリを実行すると ID ファイルとタイトル ファイルしか取得できません。

以下は私のdata-config.xmlです

<dataConfig>
        <dataSource type="FileDataSource" encoding="UTF-8" />
        <document>
        <entity name="page"
                processor="XPathEntityProcessor"
                stream="true"
                forEach="/mediawiki/page/"
                url="/mnt/TEST/enwiki-20150602-pages-articles1.xml"
                transformer="RegexTransformer,DateFormatTransformer"
                >
            <field column="id"        xpath="/mediawiki/page/id" />
            <field column="title"     xpath="/mediawiki/page/title" />
            <field column="revision"  xpath="/mediawiki/page/revision/id" />
            <field column="user"      xpath="/mediawiki/page/revision/contributor/username" />
            <field column="userId"    xpath="/mediawiki/page/revision/contributor/id" />
            <field column="text"      xpath="/mediawiki/page/revision/text" />
            <field column="timestamp" xpath="/mediawiki/page/revision/timestamp" dateTimeFormat="yyyy-MM-dd'T'hh:mm:ss'Z'" />
            <field column="$skipDoc"  regex="^#REDIRECT .*" replaceWith="true" sourceColName="text"/>
       </entity>
        </document>
</dataConfig>

また、以下の全体を schema.xml に追加しました。

 <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="title"     type="string"  indexed="true" stored="false"/>
    <field name="revision"  type="int"    indexed="true" stored="true"/>
    <field name="user"      type="string"  indexed="true" stored="true"/>
    <field name="userId"    type="int"     indexed="true" stored="true"/>
    <field name="text"      type="text_en"    indexed="true" stored="false"/>
    <field name="timestamp" type="date"    indexed="true" stored="true"/>
    <field name="titleText" type="text_en"    indexed="true" stored="true"/>

「example/example-DIH/solr/solr/conf/schema.xml」から schema.xml をコピーし、コメントに記載されているいくつかの例外を除いて、すべてのフィールド エントリを削除しました。

データをインポートした後、すべてのフィールドを取得しようとしていますが、「ID」と「タイトル」しか取得していません。

また、インデックス作成に関する情報を取得できるように、デバッグ モードを使用して documentImport を実行しようとしましたが、デバッグ モードを選択すると、2 つのドキュメントしかインポートされません。なぜかわからないのですが?このため、インデックス作成プロセスをデバッグできません。

さらに案内してください。

編集 - df=user または text を指定すると、メッセージの下に表示されるため、他のフィールドがインデックス化されていないことがわかりました。

"msg": "未定義フィールド ユーザー",

以下のようにクエリを実行しています: http://localhost:8983/solr/wiki/select?q= %3A &fl=id%2Ctitle%2Ctext%2Crevision&wt=json&indent=true&debugQuery=true

4

3 に答える 3

1

指定された設定は、クラシック スキーマでのみ正常に機能します。ただし、solrconfig では、デフォルトでマネージド スキーマが有効になっていました。そのため、テキストを取得できませんでした。マネージド スキーマの場合、「schema.xml」を定義する必要はなく、以下のように data-config.xml でフィールドを定義する必要があります。

 <field column="id"        xpath="/mediawiki/page/id" />
            <field column="title_s"     xpath="/mediawiki/page/title" />
            <field column="revision"  xpath="/mediawiki/page/revision/id" />
            <field column="user_s"      xpath="/mediawiki/page/revision/contributor/username" />
            <field column="userId"    xpath="/mediawiki/page/revision/contributor/id" />
            <field column="text_s"      xpath="/mediawiki/page/revision/text" />
            <field column="timestamp" xpath="/mediawiki/page/revision/timestamp" dateTimeFormat="yyyy-MM-dd'T'hh:mm:ss'Z'" />
            <field column="$skipDoc"  regex="^#REDIRECT .*" replaceWith="true" sourceColName="text"/>
于 2015-12-18T06:29:34.827 に答える
0

親愛なる友よ、あなたは単にフィールドの 1 つをタイプミスしました。このリンクを試してみると、笑いながら泣きたくなります。

http://localhost:8983/solr/wiki/select?q=*%3A*&fl=id+titleText+user+revision&wt=json&indent=true

スキーマで言及したタイトルは「titleText」であり、制限には「タイトル」と「テキスト」が別々に記載されています。それでは、ハングアウトで私と連絡を取り合うことができます:poorous999@gmail.com

于 2015-09-21T05:38:35.340 に答える
0

最近、Solr 7 で同じウィキペディアのインポートを試みていました。テキストが返されない理由は、managed_schema のフィールドが stored="false" に設定されているためです。

<field name="text" type="text_en" indexed="true" stored="false"/>

stored="true" に変更すると、テキストが返されます。

現在受け入れられている回答では、OP が使用していた Solr バージョンの managed_schema におそらく格納されていた text_s フィールドを使用することが提案されています。保存されていないフィールドに含まれる用語を検索すると、関連するドキュメントが返されますが、テキスト自体は返されないことに注意してください。詳細については、こちらの回答を参照してください: Solr インデックスと保存済みのインデックス

于 2018-10-12T09:43:49.857 に答える