假设我们有一个ElasticSearch实例和一个索引。我现在要在整个索引中搜索包含特定值的文档。它与在多个字段上搜索该查询相关,因此我不想指定要在其中搜索的每个字段。
到目前为止我的尝试(使用NEST)如下:
var res2 = client.Search<ElasticCompanyModelDTO>(s => s.Index("cvr-permanent").AllTypes().
Query(q => q
.Bool(bo => bo
.Must( sh => sh
.Term(c=>c.Value(query))
)
)
));
在ConnectionString上应用以下调试后,我将获得以下输出###ES REQEUST###{}
:
.DisableDirectStreaming()
.OnRequestCompleted(details =>
{
Debug.WriteLine("### ES REQEUST ###");
if (details.RequestBodyInBytes != null) Debug.WriteLine(Encoding.UTF8.GetString(details.RequestBodyInBytes));
})
.PrettyJson();
我该怎么做?为什么我的查询是错误的?
试试这个
var res2 = client.Search<ElasticCompanyModelDTO>(s =>
s.Index("cvr-permanent").AllTypes()
.Query(qry => qry
.Bool(b => b
.Must(m => m
.QueryString(qs => qs
.DefaultField("_all")
.Query(query))))));
问题内容: 我有一个文档,其中包含许多我从未查询过的字段,因此我想关闭这些字段的索引以节省资源。我相信我需要禁用该字段,但是如何指定要对哪些字段建立索引呢? 问题答案: 默认情况下,所有字段也都在_all特殊字段内建立索引,该字段开箱即用地提供了所谓的catchall功能。但是,可以通过以下选项为映射中的每个字段指定是否要将其添加到_all字段: 上面的示例禁用了name字段的默认行为,该行为不会
我需要在我的应用程序中添加搜索栏。搜索将按名和姓进行搜索。我不知道如何编写elastcsearch查询。名字和姓氏是两个分开的字段。我是个新手。 例:名:约翰,姓:约书亚 搜索栏字符串为上层结果:约翰·乔·约翰·乔·约翰·乔·乔·约翰·约书亚·约翰·约书亚·乔...
我有一个endpoint,我正在将它代理到ElasticSearchAPI中,以进行简单的用户搜索。 有关这些参数的一些详细信息如下 所有参数都是可选的 昵称可以作为全文搜索进行搜索(即'myUser'将返回'myUsername') 电子邮件必须完全匹配 名称可以搜索为每个令牌的全文搜索(即'john'将返回'John Smith') ElasticSearch调用应将参数集体视为AND'd。
问题内容: 我想基于(不是)使用新文档更新此文档。 像这样: elasticsearch版本:6.2,ES Java API:6.2 问题答案: 您基本上可以使用查询API更新来实现所需的功能,基本上是这样的: 更新:使用Java API 有关使用UpdateByQuery Java API 和Java高级Rest 客户端的更多详细信息
我使用的是OrientDB 2.1.8社区和内置的Lucene索引。如何在手动索引中定义在搜索过程中要使用的字段?即。按照文档中使用多个字段页面中描述的方式使用手动索引? 下面是一个简短的例子来展示我正在努力做的事情。
我目前正在学习一些关于elasticsearch的知识,现在我试图从searchResponse中获取特定的字段,我使用以下代码: 所以我想问的是我如何从所有这些数据中获得特定的字段,我的数据库由ElasticSearch文档中的Shakespeare.json aviable组成,并且是这样形成的 这些是我使用的参数,以防有人感兴趣 这就是在浏览器中看到响应的方式,任何答案或提示或任何东西都被很