c# – Solr 4.0和Solrnet原子更新

众所周知,solr 4.0支持原子更新.

http://wiki.apache.org/solr/UpdateXmlMessages#Optional_attributes_for_.22field.22

solrnet是否支持此功能?

如果是,我可以知道语法.

万分感谢. 最佳答案 感谢您提供的链接,请执行以下操作(明显更改以符合您的要求并假设您正在使用某些DI容器,以便通过注册SolrFacility来处理您的ISolrOperations和ISolrConnection):

    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();
    }
点赞