Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Solr 4.0和Solrnet原子更新_C#_Solr_Solrnet - Fatal编程技术网

C# Solr 4.0和Solrnet原子更新

C# Solr 4.0和Solrnet原子更新,c#,solr,solrnet,C#,Solr,Solrnet,众所周知,Solr4.0支持原子更新。 solrnet是否支持此功能? 如果是,我可以知道语法。 非常感谢。据我所知,SolrNet还不支持原子更新,我没有看到它列在或中的任何提及。请注意,原子更新非常有限。如果您希望a-la数据库具有更新功能,那么它还没有出现。在后台,使用存储的字段重新创建文档。当您不想重新发送所有字段,也不想将所有字段存储在索引中时,这会很方便。 据我所知,“真正的”更新即将到来。多亏了您提供的链接,请执行以下操作(进行明显的更改以满足您的要求,并假设您正在使用一些DI容器

众所周知,Solr4.0支持原子更新。 solrnet是否支持此功能? 如果是,我可以知道语法。
非常感谢。

据我所知,SolrNet还不支持原子更新,我没有看到它列在或中的任何提及。

请注意,原子更新非常有限。如果您希望a-la数据库具有更新功能,那么它还没有出现。在后台,使用存储的字段重新创建文档。当您不想重新发送所有字段,也不想将所有字段存储在索引中时,这会很方便。
据我所知,“真正的”更新即将到来。

多亏了您提供的链接,请执行以下操作(进行明显的更改以满足您的要求,并假设您正在使用一些DI容器,以便通过SolrFacility注册来处理您的IsolRopection和ISolrConnection):

private readonly isoropertions\u solr;
专用只读隔离连接_solrConnection;
公共SolrRecordRepository(ISolrOperations solr,ISolrConnection solrConnection)
{
_solr=solr;
_solrConnection=solrConnection;
}

public void UpdateField(int-id,string-fieldName,int-value,bool-optimize=false)
{
var updateXml=string.Format(“{0}{2}”,id,fieldName,value);
_solrConnection.Post(“/update”,updateXml);
_solr.Commit();
如果(优化)
_solr.Optimize();
}

刚刚为此创建了一个新任务:作为一种解决方法,我们可以使用本博客中给出的步骤
    private readonly ISolrOperations<Document> _solr;
    private readonly ISolrConnection _solrConnection;

    public SolrRecordRepository(ISolrOperations<Document> solr, ISolrConnection solrConnection)
    {
        _solr = solr;
        _solrConnection = solrConnection;
    }
    public void UpdateField(int id, string fieldName, int value, bool optimize = false)
    {
        var updateXml = string.Format("<add><doc><field name='id'>{0}</field><field name='{1}' update='set'>{2}</field></doc></add>", id, fieldName, value);
        _solrConnection.Post("/update", updateXml);

        _solr.Commit();

        if (optimize)
            _solr.Optimize();
    }