首页 文章

Solr DataImportHandler没有索引定义的所有数据

提问于
浏览
0

我正在使用solr5.3 .

我正在尝试使用"DataImportHandler"将维基百科页面文章dump上传到solr但我在查询时只获取了id和title文件 .

下面是我的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”和“Title” .

此外,我尝试使用调试模式运行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

3 回答

  • 0

    我亲爱的朋友,你只是错误地键入了其中一个字段 . 尝试这个链接,你想要同时笑和哭 .

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

    您在架构中提到的 Headers 是“titleText”,您的限制单独提到“ Headers ”和“文本” . 所以上帝的速度,你可以通过环聊与我保持联系:porous999@gmail.com

  • 0

    提供的设置仅适用于经典架构 . 但是在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"/>
    
  • 0

    我最近尝试使用Solr 7进行相同的维基百科导入 . 未返回原因文本是因为managed_schema中的该字段设置为stored =“false”:

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

    将其更改为stored =“true”将返回文本 .

    当前接受的答案建议使用text_s字段,该字段可能存储在OP正在使用的Solr版本的managed_schema中 . 请注意,搜索未存储的任何字段中包含的术语仍将返回相关文档,仅返回文本本身 . 有关详细信息,请参阅此处的答案:Solr index vs stored

相关问题