如何使用 solrj 将一个文档添加到 solr 索引?

How do I add one document to solr index using solrj?

我可以使用以下代码重新索引整个 solr 核心:

 public void indexSolr() throws SolrServerException, IOException {
    HttpSolrServer solr = new HttpSolrServer(solrIndexPath);
    logger.info("Indexing fcv solr at " + solrIndexPath);

    // reindex to pickup new articles
    ModifiableSolrParams params = new ModifiableSolrParams();
    params.set("qt", "/" + solrDataImportPath);
    params.set("command", "full-import");
    params.set("clean", "true");
    params.set("commit", "true");
    solr.query(params);
}

如何只将一个文档插入索引而不必索引整个文档?

嗯....我不确定 DIH 是否可行。我的意思是,根据你对 "whole thing" 的意思(因为索引的变化,即使是单个文档,也需要重建索引)你可以用这种方式索引一个文档

1) 增量导入 如果该单个记录是已更改的内容,并且该更改是您可以使用数据库列(例如时间戳)标识的内容,那么您可以使用 DIH

的增量导入功能

2) 更改并重新加载 - 将修改查询的 dih-config 更改为 select 那条记录

  • 重新加载 DIH 配置

  • 重新发布完整导入

您在找这样的东西吗?

public void insertOneDoc() throws SolrServerException, IOException {
  HttpSolrServer solr = new HttpSolrServer(solrIndexPath);
  SolrInputDocument doc = new SolrInputDocument();
  doc.addField("fieldName", "fieldValue");
  solr.add(doc);
  solr.commit();
}

因为这会将单个文档添加到 HttpSolrServer 引用的索引中。