问题标签 [nest]

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.

0 投票
4 回答
19074 浏览

c# - 使用 NEST C# 客户端搜索 ElasticSearch

我开始四处寻找搜索引擎,经过阅读后我决定使用 ElasticSearch(这非常棒:)),我的项目在 C# 中,所以我四处寻找客户并开始使用NEST,一切都很简单,但我是在搜索部分有点困惑。

我想搜索特定类型的所有字段,我想出的是以下代码:

我看到很多字符串查询搜索已被弃用,并想确保上面是正确的方法(上面没有标记为不推荐使用......)而且对于一个简单的任务来说它有点长所以也许任何人知道另一种方法。

谢谢

0 投票
1 回答
6023 浏览

c# - 使用 NEST ElasticSearch 库进行连接池

我目前正在使用 NEST ElasticSearch C# Library 与 ElasticSearch 进行交互。我的项目是一个 MVC 4 WebAPI 项目,它基本上构建了一个用于访问目录辅助信息的 RESTful Web 服务。

我们才刚刚开始使用 NEST,并且一直因缺乏文档而磕磕绊绊。那里的东西很有用,但它有一些非常大的漏洞。目前,我们需要的一切都可以正常工作,但是,我们遇到了连接有时需要一整秒的问题。我们想做的是使用某种连接池,类似于您与 SQL Server 交互的方式。

这是有关如何使用嵌套连接的文档:http: //mpdreamz.github.com/NEST/concepts/connecting.html

以下是我们项目中的相关代码片段:

通过查看文档,我看不到连接池的任何规定。我一直在考虑实现我自己的(例如存储 3 或 4 个 ElasticClient 对象,并以循环方式选择它们),但我想知道是否有人有更好的解决方案。如果没有,是否有人对手动实现连接池的最佳方法有建议?有什么文章可以指点?

感谢你们提出的任何建议。

更新:这似乎与在每个请求上调用 TryConnect 以及特定的网络设置有关。当使用与 Elastic box 处于同一网络的机器时,问题完全消失;我的开发机器(到 Elastic 盒子平均需要 350 毫秒)有时似乎无法建立 http 连接,这导致 TryConnect 时间过长。

0 投票
2 回答
1525 浏览

c# - 使用 Mpdreamz/NEST 循环通过 elasticsearch queryresult

我使用 Mpdreamz/NEST 作为 .net 客户端来搜索弹性搜索。

我正在使用result.Hits.Total. 但我想知道如何从结果中显示字段的值。

0 投票
2 回答
2193 浏览

.net - NEST ElasticSearch 客户端中 SearchBuilder 的使用

我想知道是否有人对在 NEST 中使用 SearchBuilder API 有任何提示或示例。文档仍然有点稀疏。

我希望根据 URL 参数中发送的条件动态构建查询/过滤器。一个例子:

www.mydomain.com/things/search?prop1=3&prop2=foo&prop3=bar

一旦我提取了那些,我想根据现有的标准构建一个完全匹配的查询。

0 投票
1 回答
5554 浏览

elasticsearch - 使用 Elasticsearch C# Mpdreamz/NEST 客户端在嵌套字段上的 Facet

如何使用 Mpdreamz/NEST Elasticsearch 客户端基于嵌套字段的属性列出构面?

我检查了 Nest 文档,但不清楚该怎么做。

这是我尝试过的代码:

由于方面我得到:

  • 流派 (842)
  • 98 (47)
  • 51 (30)
  • 24 (29)
  • 46 (28)

虽然我希望得到类似的东西:

  • 类型 1 (842)
  • 类型 2 (47)
  • 类型 3 (30)
  • 类型 4 (29)
  • 类型 5 (28)

我做错了什么?在哪里检查在 Nest 中使用嵌套字段的正确方法以及它们上的构面?

谢谢你。

更新 1:

我发现它与标记器/分析器有关。如果流派名称没有空格或破折号 - 一切正常。我也试过未分析的索引属性

但这没有帮助

更新 2: 我在之前的索引删除之后添加了流畅的索引映射而不是注释,例如:

现在不确定注释有什么问题。使用注释进行索引设置是否需要任何其他配置?

0 投票
1 回答
3447 浏览

c# - 使用 elasticsearch 和 NEST 在集合中搜索匹配项

我对弹性搜索和 NEST 真的很陌生,很抱歉这个基本问题。
我正在尝试找出如何搜索在集合属性中具有匹配项的所有文档。

我的弹性文档对象看起来像这样:

我想知道我如何搜索他们的TagIds财产中有一定数量的文件。

我想做这样的事情:

0 投票
2 回答
4373 浏览

c# - 在 ElasticSearch 上使用 NEST - 如何使用部分填充的对象作为搜索条件

因此,我已经成功创建了“包”对象的索引,并且直接的文本查询运行良好。

我很想知道是否/如何使用部分填充的对象(“包”类型)作为搜索条件?

包看起来像:

查询当前看起来像:

但我喜欢有类似的东西:

我希望我说得通:D提前谢谢

0 投票
2 回答
748 浏览

search-engine - 使用 NEST 库进行索引时出现 RoutingMissingException

我已经使用 TypeMapping 在我的代码中指定了文档映射,在索引时我开始看到以下异常

{"error":"RoutingMissingException[[search2]/[ImageDocument]/[2039810546]]需要路由","status":500}

而且在指定类型映射时,我没有找到任何方法来使用 NEST 指定路由!任何线索我们在索引时或映射时在哪里指定路由参数?

0 投票
3 回答
5494 浏览

c# - 在 NEST 中“动态”创建过滤器

我有一个有趣的挑战,我认为有一个简单的答案。

我知道当您在语法上执行以下操作时,NEST 过滤器可以正常工作:

我的基本服务应该允许调用者传入某种可枚举的项目列表以进行过滤。

我基本上希望能够以编程方式实现这样的事情(过滤器被传递到方法中):

换句话说,如果我传入一个数组 { {"first.name", "joe"}, {"first.name", "jim"}, {"first.name", "frank"}} 我想产生相当于

0 投票
2 回答
6721 浏览

.net - 随着时间的推移,随着索引和文档数量的增加,elasticsearch 批量索引会变慢

我正在体验使用 .NET NEST 客户端和 ElasticSearch 的批量索引性能随着时间的推移而降低,索引数量和文档数量都是恒定的。

我们ElasticSearch Version: 0.19.11, JVM: 23.5-b02在一个 m1.large Amazon 实例上运行,它带有 Ubuntu Server 12.04.1 LTS 64 位和 Sun Java 7。除了 Ubuntu 安装附带的东西之外,这个实例上没有运行其他任何东西。

Amazon M1 大型实例:来自http://aws.amazon.com/ec2/instance-types/

ES_MAX_MEM 设置为 4g,ES_MIN_MEM 设置为 2g

每天晚上,我们在 .NET 应用程序中使用 NEST 索引/重新索引约 15000 个文档。在任何给定时间,只有一个索引包含 <= 15000 个文档。

首次安装服务器时,最初几天的索引和搜索速度很快,然后索引开始变得越来越慢。批量索引一次索引 100 个文档,一段时间后,完成批量操作最多需要 15 秒。在那之后,我们开始看到很多以下异常,并且索引停止了。

构建索引实现看起来像这样

重新启动 elasticsearch 守护进程似乎没有任何区别,但删除索引并重新索引所有内容。但是几天后,我们将遇到同样的索引缓慢问题。

我刚刚删除了索引并在每次批量索引操作后重新启用刷新间隔后添加了优化,希望这可以防止索引降级。

我在这里做错了什么吗?