0

I know lucene, just started to learn how to use solr. In the simple example, the way to add document is to used the example ../update -jar post.jar to add document, the question is without writing my own add document in java, using the same way (... post.jar), is there a way to add additional fields not in the document? For example, say my schema include name, age, id fields, but the document has no 'id' field but I want the id and its value to be included, of course I know what id and value I want but how do I include it?

Thanks in advanced!

Tara
  • 549
  • 2
  • 7
  • 14

1 Answers1

0

I don't believe you can mix the two. You can use post.jar to add documents using arguments passed in on the commandline, a file, stdin or a simple crawl from a web page but there is no way to combine them. In the source code for post.jar you can see it's a series else if statements so they are mutually exclusive.

-Ddata args, stdin, files, web

Use args to pass arguments along the command line (such as a command to delete a document). Use files to pass a filename or regex pattern indicating paths and filenames. Use stdin to use standard input. Use web for a very simple web crawler (arguments for this would be the URL to crawl).

https://cwiki.apache.org/confluence/display/solr/Simple+Post+Tool

/**
   * After initialization, call execute to start the post job.
   * This method delegates to the correct mode method.
   */
  public void execute() {
    final long startTime = System.currentTimeMillis();
    if (DATA_MODE_FILES.equals(mode) && args.length > 0) {
      doFilesMode();
    } else if(DATA_MODE_ARGS.equals(mode) && args.length > 0) {
      doArgsMode();
    } else if(DATA_MODE_WEB.equals(mode) && args.length > 0) {
      doWebMode();
    } else if(DATA_MODE_STDIN.equals(mode)) {
      doStdinMode();
    } else {
      usageShort();
      return;
    }

    if (commit)   commit();
    if (optimize) optimize();
    final long endTime = System.currentTimeMillis();
    displayTiming(endTime - startTime);
  }

http://svn.apache.org/repos/asf/lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/SimplePostTool.java

You could try to modify the code but I think a better bet would be to either pre-process your xml files to include the missing fields, or learn to use the API (either via Java or hitting it with Curl) to do this on your own.

John Petrone
  • 26,943
  • 6
  • 63
  • 68