我正在存储看起来像这样的文档:
{
"title" : "My title",
"posted_date" : "2014-03-04T04:00:12+00:00",
"category" : ["cat1", "cat2"],
}
然后,我用各种侧边栏过滤器显示这些列表,这些过滤器用于分类和日期(按年,按月)。根据用户选择的选项,结果查询可能最终看起来像:
{
"query": {
"range": {
"posted_date": {
"gte": "2014-01-01T00:00:00+00:00",
"lte": "2015-01-01T00:00:00+00:00"
}
},
"filtered": {
"filter": {
"and": {
"filters": [
{
"term": {
"category": "cat1"
}
}
]
}}}}}
这似乎完全按预期工作,除了当我尝试添加构面时,我可以在日期等旁边加上小数字(1)等:
{
"query": {
"range": {
"posted_date": {
"gte": "2014-01-01T00:00:00+00:00",
"lte": "2015-01-01T00:00:00+00:00"
}
},
"filtered": {
"filter": {
"and": {
"filters": [
{
"term": {
"category": "fiction"
}
}
]
}
}
}
},
"facets": {
"bymonth": {
"date_histogram": {
"field": "posted_date",
"interval": "month"
}
},
"byyear": {
"date_histogram": {
"field": "posted_date",
"interval": "year"
}
}
}
}
仅当我不在查询中包括范围时,此方法才有效。如果范围在那儿,我就不会得到任何回报。只是没有结果。即使我将刻面更改为另一个术语而不是日期,我也一无所获。
范围查询和构面之间是否存在不兼容的问题?关于这些查询的结构方式是否还有其他问题,使其无法按照我认为的方式进行?
我认为您需要在这里facet_filter。
{
"facets": {
"facet1": {
"terms_stats": {
"key_field" : "name",
"value_field": "count"
},
"facet_filter": {
"range": {
"filed": {
"from": 0,
"to": 20
}
}
}
}
}
}
您更新的查询将如下所示:
{
"query": {
"filtered": {
"filter": {
"and": {
"filters": [
{
"term": {
"category": "fiction"
}
}
]
}
}
}
},
"facets": {
"bymonth": {
"date_histogram": {
"field": "posted_date",
"interval": "month"
},
"facet_filter": {
"range": {
"posted_date": {
"gte": "2014-01-01T00:00:00+00:00",
"lte": "2015-01-01T00:00:00+00:00"
}
}
}
},
"byyear": {
"date_histogram": {
"field": "posted_date",
"interval": "year"
}
}
}
}
问题内容: 我最近开始使用ElasticSearch。我尝试完成一些用例。我对其中一个有问题。 我已经用他们的全名为一些用户建立了索引(例如“ Jean-Paul Gautier”,“ Jean De La Fontaine”)。 我尝试让所有全名响应某个查询。 例如,我希望以“ J”开头的100个最全名 我得到的结果是全名的所有单词:“ Jean”,“ Paul”,“ Gautier”,“ De
嗨,我是elasticsearch的新手,现在我索引了一个网站,我想用我的查询的单词获得文本摘录, 示例I索引 Lorem ipsum dolor sit amet,consectetur adipiscing Elit。Morbi nec odio在magna blandit porta quis a Nibh。整数sodales ex ut sagittis venenatis。Duis ef
问题内容: 这是我的架构 我做了这样的一个NEST查询: 并返回零元素! 如果我查看数据库(使用邮递员),则可以看到我的文档: 问题答案: 听起来您可能没有在为文档建立索引 之前 将类型的映射显式地放入索引中,所以Elasticsearch已基于所看到文档中字段的默认映射来推断该映射。例如,给定以下类型 如果我们按以下方式索引一些文档 在控制台中输出以下内容 我们没有匹配的文件。在Elastics
问题内容: 我在Elasticsearch中有一个小型数据库,出于测试目的,我想拉回所有记录。我正在尝试使用以下形式的网址… 有人可以给我您用来完成此操作的URL吗? 问题答案: 我认为支持lucene语法是这样的: 大小默认为10,因此您可能还需要获取10个以上的商品。(其中BIGNUMBER等于您认为大于数据集的数字) 但是,elasticsearch文档建议使用扫描搜索类型针对大型结果集。
问题内容: 我想知道为什么搜索特定术语会返回索引的所有文档,而不返回包含所请求术语的文档。 这是索引以及我的设置方法:(使用elasticsearch头插件浏览器界面) 然后我添加了一些文档: 因此,现在触发“ plaat”搜索时,人们会希望搜索会返回包含“ plaatstaal”的文档。 但是为我节省了更多的搜索,elasticsearch会恢复所有文档的大小,无论其文本内容如何。我在这里想念什
问题内容: 我对.net中的elasticsearch客户端进行了一项小型研究,发现NEST是对此问题最受支持的解决方案之一。 我正在查看Nest的文档,但我找不到从查询输出原始json并避免将序列化为对象的方法,因为我在前端使用了angularJs,所以我不想重载该过程通过一些不必要的步骤将信息发送给客户端。 ......而且我还想知道如何覆盖序列化过程? 我发现NEST使用Json.NET,我