Solr DataImportHandler 没有索引所有定义的数据
Solr DataImportHandler is not indexing all data defined
我正在使用 solr5.3。
我正在尝试使用 "DataImportHandler" 将维基百科页面文章 dump 上传到 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" 和 "Title"。
我还尝试 运行 使用调试模式导入 documentImport,以便我可以获得一些有关索引的信息,但是每当我选择调试模式时,它只会导入 2 个文档。我不确定为什么?由于这个原因,我无法调试索引过程。
请进一步指导我。
EDIT-I 我现在确定其他字段没有被索引,因为当我指定 df=user 或文本时,我收到以下消息。
"msg": "undefined field user",
我正在查询如下:
http://localhost:8983/solr/wiki/select?q=%3A&fl=id%2Ctitle%2Ctext%2Crevision&wt=json&indent=true&debugQuery=true
亲爱的朋友,您只是mis-typed其中一个字段。试试这个 link,你会想同时笑和哭。
http://localhost:8983/solr/wiki/select?q=*%3A*&fl=id+titleText+user+revision&wt=json&indent=true
您在架构中提到的标题是 "titleText",您的限制分别提到了 "title" 和 "text"。所以上帝速度,你可以通过视频群聊与我保持联系:porous999@gmail.com
提供的设置仅适用于经典架构。但是在 solrconfig 默认情况下启用了托管模式。因此我没有收到短信。对于托管模式,我不需要定义 "schema.xml",我应该在数据中定义字段-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"/>
我最近正在尝试使用 Solr 7 进行相同的维基百科导入。文本未被 return 编辑的原因是 managed_schema 中的该字段设置为 stored="false" :
<field name="text" type="text_en" indexed="true" stored="false"/>
将其更改为 stored="true" 将 return 文本。
当前接受的答案建议使用 text_s 字段,该字段可能存储在 OP 正在使用的 Solr 版本的 managed_schema 中。
请注意,搜索任何未存储的字段中包含的术语仍将 return 相关文档,只是文本本身未被 return 编辑。请在此处查看答案以获取更多信息:Solr index vs stored
我正在使用 solr5.3。
我正在尝试使用 "DataImportHandler" 将维基百科页面文章 dump 上传到 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" 和 "Title"。
我还尝试 运行 使用调试模式导入 documentImport,以便我可以获得一些有关索引的信息,但是每当我选择调试模式时,它只会导入 2 个文档。我不确定为什么?由于这个原因,我无法调试索引过程。
请进一步指导我。
EDIT-I 我现在确定其他字段没有被索引,因为当我指定 df=user 或文本时,我收到以下消息。
"msg": "undefined field user",
我正在查询如下: http://localhost:8983/solr/wiki/select?q=%3A&fl=id%2Ctitle%2Ctext%2Crevision&wt=json&indent=true&debugQuery=true
亲爱的朋友,您只是mis-typed其中一个字段。试试这个 link,你会想同时笑和哭。
http://localhost:8983/solr/wiki/select?q=*%3A*&fl=id+titleText+user+revision&wt=json&indent=true
您在架构中提到的标题是 "titleText",您的限制分别提到了 "title" 和 "text"。所以上帝速度,你可以通过视频群聊与我保持联系:porous999@gmail.com
提供的设置仅适用于经典架构。但是在 solrconfig 默认情况下启用了托管模式。因此我没有收到短信。对于托管模式,我不需要定义 "schema.xml",我应该在数据中定义字段-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"/>
我最近正在尝试使用 Solr 7 进行相同的维基百科导入。文本未被 return 编辑的原因是 managed_schema 中的该字段设置为 stored="false" :
<field name="text" type="text_en" indexed="true" stored="false"/>
将其更改为 stored="true" 将 return 文本。
当前接受的答案建议使用 text_s 字段,该字段可能存储在 OP 正在使用的 Solr 版本的 managed_schema 中。 请注意,搜索任何未存储的字段中包含的术语仍将 return 相关文档,只是文本本身未被 return 编辑。请在此处查看答案以获取更多信息:Solr index vs stored