Skip to content

mtermvectors with artificial documents not possible #716

Closed
@oli-tu

Description

@oli-tu

Java API client version

8.11.1

Java version

17

Elasticsearch Version

8.4.3

Problem description

The Multi term vectors API supports requests with artificial documents.

POST /_mtermvectors
{
  "docs": [
    {
      "_index": "myIndex",
      "doc": {
        "foo" : "bar"
      }
    }
  ]
}

This is not possible, as the Java client requires an _id within the document:

String artificialDoc = String.format("{\"%s\": \"%s\"}", "foo", "bar");
JsonData jsonData = JsonData.fromJson(artificialDoc);
MtermvectorsRequest request = MtermvectorsRequest.of(b -> b.docs(d -> d.index(index).doc(jsonData)));

Stacktrace:

co.elastic.clients.util.MissingRequiredPropertyException: Missing required property 'MultiTermVectorsOperation.id'
	at co.elastic.clients.util.ApiTypeHelper.requireNonNull(ApiTypeHelper.java:76)
	at co.elastic.clients.elasticsearch.core.mtermvectors.MultiTermVectorsOperation.<init>(MultiTermVectorsOperation.java:99)
	at co.elastic.clients.elasticsearch.core.mtermvectors.MultiTermVectorsOperation.<init>(MultiTermVectorsOperation.java:57)

But if I add the requested id, my cluster will correctly respond:

co.elastic.clients.elasticsearch._types.ElasticsearchException: [es/mtermvectors] failed: [parse_exception] failed to parse term vectors request. either [id] or [doc] can be specified, but not both!
	at co.elastic.clients.transport.ElasticsearchTransportBase.getApiResponse(ElasticsearchTransportBase.java:345)
	at co.elastic.clients.transport.ElasticsearchTransportBase.performRequest(ElasticsearchTransportBase.java:147)

So if the MultiTermVectorsOperation validation could just let me create the request without an id, it would work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area: SpecificationRelated to the API spec used to generate client code

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions