ElasticSearch - 使用 NEST 插入到带有正斜杠的索引
ElasticSearch - Insert to index with forward slash using NEST
我目前正在研究使用 ElasticSearch。我一直在遵循他们的指南并使用 Kibana 上的开发工具进行了一些测试,这看起来很简单。
使用 REST API 我可以通过将 POST 请求发送到 /recipes
来索引文档,也可以通过将它发送到 /recipes/cakes
来索引它,但我现在无法通过 NEST 客户端复制此行为。
我正在尝试进行批量插入,如果我只指定 recipes
就可以正常工作
client.IndexMany(docs, "/recipes");
在我看来,能够然后也这样做是有意义的:
client.IndexMany(docs, "/recipes/cakes");
但是这会引发错误:Invalid NEST response built from a successful low level call on POST: /recipes%2Fcakes/_bulk
我可以看出问题是因为它是 url 对 /
进行编码,那么使用其中包含 /
的索引的正确方法是什么?我似乎无法在任何地方找到答案。
看来我弄错了这些路径的工作方式,我以为你可以有多个级别,例如 /recipes/cakes/chocolate
但这实际上是插入一个索引为 recipes
的文档,键入 cakes
和 chocolate
.
的 ID
因此,我可以通过使用 IndexMany 方法 (TypeName type
) 中的下一个参数来实现我在上面尝试的目标:
client.IndexMany(docs, "recipes", "cakes");
我目前正在研究使用 ElasticSearch。我一直在遵循他们的指南并使用 Kibana 上的开发工具进行了一些测试,这看起来很简单。
使用 REST API 我可以通过将 POST 请求发送到 /recipes
来索引文档,也可以通过将它发送到 /recipes/cakes
来索引它,但我现在无法通过 NEST 客户端复制此行为。
我正在尝试进行批量插入,如果我只指定 recipes
client.IndexMany(docs, "/recipes");
在我看来,能够然后也这样做是有意义的:
client.IndexMany(docs, "/recipes/cakes");
但是这会引发错误:Invalid NEST response built from a successful low level call on POST: /recipes%2Fcakes/_bulk
我可以看出问题是因为它是 url 对 /
进行编码,那么使用其中包含 /
的索引的正确方法是什么?我似乎无法在任何地方找到答案。
看来我弄错了这些路径的工作方式,我以为你可以有多个级别,例如 /recipes/cakes/chocolate
但这实际上是插入一个索引为 recipes
的文档,键入 cakes
和 chocolate
.
因此,我可以通过使用 IndexMany 方法 (TypeName type
) 中的下一个参数来实现我在上面尝试的目标:
client.IndexMany(docs, "recipes", "cakes");