4

ご存知のとおり、solr4.0はアトミック更新をサポートしています。 http://wiki.apache.org/solr/UpdateXmlMessages#Optional_attributes_for_.22field.22 これはsolrnetでまだサポートされていますか?はいの場合、構文を知ることができます。トンありがとう。

4

3 に答える 3

2

あなたが提供したリンクのおかげで、次のことを行ってください(要件に合わせて明らかな変更を加え、SolrFacilityの登録を介してISolrOperationsとISolrConnectionが処理されるようにDIコンテナを使用していると仮定します):

    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();
    }
于 2014-06-05T23:49:10.327 に答える
0

アトミックな更新は非常に限られていることに注意してください。データベースの更新機能を期待している場合は、まだありません。内部では、保存されたフィールドを使用してドキュメントが再作成されます。すべてのフィールドを再送信したくない場合や、すべてのフィールドをインデックスに保存する必要がない場合に便利です。私の知る限り、「本当の」アップデートはもうすぐです。

于 2012-11-13T14:32:19.610 に答える
0

私の知る限りでは、SolrNet はまだアトミック アップデートをサポートしておらず、SolrNet Project Issues Listにも、GitHubの SolrNet Commits にも言及されていません。

于 2012-11-13T12:43:50.890 に答える