问题标签 [nest2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 将我的代码移植到 NEST 2.0 和 ElasticSearch 2.0
我正在将我的 .NET C# WebAPI 从 NEST 1.0 移植到最新的 NEST 2.0。Elasticsearch 也已更新到 2.0。
.Filters()
已替换为.Query()
哪个很好。
但是,我找不到.SortAscending()
. 有一个.Sort()
但是我如何指定顺序?(升序降序)
Intellisense 表明我应该传递一个有用selector
的类型IPromise
,但一个简单的例子会更好。反正单靠intellisense真的看不懂……
c# - DynamicDictionary is gone on ElasticSearch 2.0 (Elasticsearch.Net)
In my previous code I was using a DynamicDictionary
as a base class for my DataRecordDictionary
document
So I was able to store the FileId
, the Timestamp
and a custom set of key-value pairs (note the base class)
Now, having updated to NEST2 and ElasticSearch2 the DynamicDictionary
is gone but I still need to persist key-value pairs on the database.
Is there any new dictionary data structure I could use which is recognized by Elasticsearch and that can be stored in it?
c# - 在 NEST 2.0 中找不到 Add() 方法
这是我的 NEST2.0 POCO 声明:
这是它的映射:
看起来该.Add()
方法不再存在(它在 NEST 1.0 中运行良好)
c# - ElasticSearch 2.0 上的批量写入 NEST 2.0 会引发 stackoverflow 异常
我在 ElasticSearch 1.0 和 NEST 1.0 上使用批量插入。现在我转移到 ElasticSearch 2.0 和 NEST 2.0 并且批量插入会引发 stackoverflow (!) 异常。我的直觉是无限递归正在发生,它消耗了整个堆栈。
这是我的 POCO
这就是我创建映射的方式:
批量插入分两步完成
首先我创建描述符:
然后我调用 NESTbulk()
方法
调用时,我在 foreach 中得到了 stackoverflow 异常descriptor.Index()
编辑
mscorlib.dll 中出现“System.StackOverflowException”类型的未处理异常
不幸的是,由于异常发生在外部代码(系统或框架?)
c# - NEST 2.0 不会将某些字段保留到 ElasticSearch 2.0 中
这是我的文件:
如您所见,它继承自,Dictionary<string, object>
因此我可以动态地向其添加字段(这是使聚合工作的要求)
我在这里存储映射:
现在我创建一个新记录并存储它:
记录得到实际存储,但文本字段没有持久化。这是从 ElasticSearch 2.0 返回的 JSON
如果我从字段中删除基类MyDoc
被text
正确存储但显然字典内容不是(我还需要删除该.Add()
位,因为文档不继承自 a Dictionary
)。
如何存储text
字段和字典内容?
c# - NEST 异步调用
根据这个链接,NEST 2.0 内部刚刚转移到一个完全成熟的 async/await 实现。
这是否意味着 NEST 2.0 在内部以完全异步的方式工作?
如果不是,我们应该在调用 NEST API 时使用 async 吗?
c# - 如何在 NEST 2.0 中设置文档名称
我有一个Dictionary<string, object>
正在使用 NEST 2.0 库插入到 ElasticSearch 2.0 中。
默认文档名称是Dictionary'2
. 我不知道为什么 NEST 选择这个名字,但我想要更明智的名字,比如“ DataRecord
”
如何设置文档名称?
第二种选择是创建一个空的包装类,但这似乎有点矫枉过正
c# - C# 使用弹性搜索计算地理距离(巢 2)
我正在实现一个能够接收 10 个最近对象的程序。作为我使用 ElasticSearch 的数据库,我的模型看起来像这样。
我创建了这样的索引
我像这样插入新文件
模型的所有值都已设置,并且可以正常工作。
但现在我想得到 10 公里范围内最近的 10 个。我这样查询
但它不返回任何文档,但如果我将距离值设置为 10000 公里,它会返回一个文档。
我在模型中使用的数据是:LAT:47.4595248 LON:9.6385962
我在搜索中使用的位置:LAT:47.4640298 LON:9.6389685
这些地方相距100米。有人可以帮我找出代码中的错误吗?是否有可能从弹性搜索服务器获得计算出的距离?
顺便说一句:我正在设置默认索引
编辑 我发现了错误:
我不得不改变纬度和经度的位置。
但是我没有得到计算出的距离,有人知道我怎么能得到距离吗?
此致
c# - NEST2:如何一次指定数据库索引名称
我们的 C# WebAPI 应用程序使用 ElasticSearch 数据库。我们正在使用 NEST2 来访问数据库。
代码中的所有 NEST2 查询都指定了数据库索引名称,这里是一个示例:
有时我们忘记在查询中指定索引名称......问题不会立即显现出来,因为 API 按预期工作并且一切都很好......只有当我们添加另一个包含一些类似文档的索引时,我们才会看到问题
是否可以在 NEST2 初始化后一次性指定索引名称?这样做我将避免记住在每个查询中插入它的负担
c# - 使用 NEST 检查索引中是否存在文档
我正在重新索引我的索引,但每当我尝试删除一个不存在的文档时都会遇到问题,因此我需要检查该文档是否已经存在。
该方法只是在elasticsearch 文档中进行了解释。
我发现了一个包含一些有趣代码的问题,我已经尝试过
但是编译器给出了一个错误
无法将 lambda 表达式转换为类型“Nest.DocumentPath<object>”,因为它不是委托类型
我想我的错误是因为问题是指 NEST 1.x 而我使用的是 NEST 2.x。
我知道我可以做一个简单的查询,但我想知道是否有像 ES doc-exists这样的直接方式。
谢谢