文档未添加到solr

时间:2017-11-07 19:04:06

标签: solr solrnet

我正在使用SolrNet库与来自.net的solr进行交互。我不得不对solarconfig.xml文件进行一些更改,以使solr使用我的schema.xml文件而不是托管模式。最终它全部加载到仪表板区域,我认为事情很好。然后我尝试使用以下内容向索引添加一些文档。

var itemsToAdd = new List<FindDocument>()
{
    new FindDocument()
    {
        Id = "a1",
        DocumentType = "Agency",
        Email = "test@test.com"
    },
    new FindDocument()
    {
        Id = "a2",
        DocumentType = "Agency",
        Email = "test2@test.com"
    },
    new FindDocument()
    {
        Id = "r1",
        DocumentType = "Recruiter",
        Email = "recruiter@test.com"
    }
};

var solr = ServiceLocator.Current.GetInstance<ISolrOperations<FindDocument>>();
solr.AddRange(itemsToAdd);
solr.Commit();

当我进入solr仪表板,选择我的核心并试图查询它显示0文件。我手动尝试通过仪表板的“文档”选项卡添加文档。它返回成功消息但是再次查询返回0文档。这是我在日志中看到的内容。

solrnet添加日志 -

2017-11-07 18:46:59.182 INFO  (qtp7980742-42) [   x:TenixFind] o.a.s.u.p.LogUpdateProcessor [TenixFind] webapp=/solr path=/update params={version=2.2} {add=[a1 (1583434085624184832), a2 (1583434085624184833), r1 (1583434085624184834)]} 0 50
2017-11-07 18:46:59.296 INFO  (qtp7980742-41) [   x:TenixFind] o.a.s.u.p.LogUpdateProcessor [TenixFind] webapp=/solr path=/update params={version=2.2} {commit=} 0 0
2017-11-07 18:47:38.823 INFO  (qtp7980742-42) [   x:TenixFind] o.a.s.u.p.LogUpdateProcessor [TenixFind] webapp=/solr path=/update params={version=2.2} {add=[a1 (1583434127189737472), a2 (1583434127189737473), r1 (1583434127190786048)]} 0 44
2017-11-07 18:47:38.922 INFO  (qtp7980742-41) [   x:TenixFind] o.a.s.u.p.LogUpdateProcessor [TenixFind] webapp=/solr path=/update params={version=2.2} {commit=} 0 0

然后手动仪表板添加。

2017-11-07 18:57:21.176 INFO  (qtp7980742-46) [   x:TenixFind] o.a.s.u.p.LogUpdateProcessor [TenixFind] webapp=/solr path=/update params={wt=json} {add=[abc123 (1583434737832165376)]} 0 0

我没有收到任何错误,所以我不确定为什么这些文件没有被保存。由于运行位置的限制,我不得不运行旧版本的solr - 5.3.0。

此外,作为一些背景知识,当solr最初设置为使用托管架构时,我能够添加文档。但是它不会使用我的自定义字段类型和动态字段,因为它没有读取schema.xml文件。我尝试使用这些自定义字段/类型修改托管模式文件,虽然它们有效,但我告诉同事,在生产环境中,我必须让solr使用schema.xml文件而不是托管模式由于它是如何运行的。

编辑:

我发现了问题。更新solrconfig.xml文件以使用schema.xml而不是managed-schema文件时,还必须从solrconfig中删除以下内容。

<processor class="solr.AddSchemaFieldsUpdateProcessorFactory">
  <str name="defaultFieldType">strings</str>
  <lst name="typeMapping">
    <str name="valueClass">java.lang.Boolean</str>
    <str name="fieldType">booleans</str>
  </lst>
  <lst name="typeMapping">
    <str name="valueClass">java.util.Date</str>
    <str name="fieldType">tdates</str>
  </lst>
  <lst name="typeMapping">
    <str name="valueClass">java.lang.Long</str>
    <str name="valueClass">java.lang.Integer</str>
    <str name="fieldType">tlongs</str>
  </lst>
  <lst name="typeMapping">
    <str name="valueClass">java.lang.Number</str>
    <str name="fieldType">tdoubles</str>
  </lst>
</processor>

然而,直接紧接着是我意外删除的另一条线。

<processor class="solr.RunUpdateProcessorFactory"/>

一旦我把它放回去就开始保存文件。

0 个答案:

没有答案