据我所知,我们可以在elasticsearch中解析文档,并且当我们搜索关键字时,它将使用以下Java API代码返回文档:
org.elasticsearch.action.search.SearchResponse searchHits = node.client()
.prepareSearch()
.setIndices("indices")
.setQuery(qb)
.setFrom(0).setSize(1000)
.addHighlightedField("file.filename")
.addHighlightedField("content")
.addHighlightedField("meta.title")
.setHighlighterPreTags("<span class='badge badge-info'>")
.setHighlighterPostTags("</span>")
.addFields("*", "_source")
.execute().actionGet();
现在我的问题是,假设某些文档具有如下字符串:
Jun 2010 to Sep 2011 First Document
Jun 2009 to Aug 2011 Second Document
Nov 2011 – Sep 2012 Third Document
Nov 2012- Sep 2013 Forth Document
Nov 2013 – Current First Document
June 2014 – Feb 2015 Third Document
Jan 2013 – Jan 2014 Second Document
July 2008 – Oct 2012 First Document
May 2007 – Current Forth Document
现在,我希望出现以下情况的文件:
1 to 12 months
13-24 months
26-48 months
我该怎么做?
以这种形式索引文档时,Elasticsearch将无法正确地将这些字符串解析为日期。如果您将这些字符串转换为正确格式的时间戳记,则可以执行建议的查询的唯一方法是以这种格式索引这些文档
{
"start": "2010-09",
"end": "2011-10",
// rest of the document
}
然后对它们运行脚本过滤的查询,然后使用Elasticsearch提供的一种脚本语言编译一个脚本,计算这两个日期之间的差值。请记住,脚本过滤和评分总是比简单的索引查找慢得多。
一种更快,更清洁的方法是,将时间段的长短与开始日期和结束日期一起编制索引,就像这样
{
"start": "2010-09",
"end": "2011-10",
"duration": 13
// the rest of the document
}
如果以这种形式索引文档,则只需在工期字段中执行过滤查询:
{
"query":{
"filtered":{
"filter":{
"and":[
{
"range":{
"duration":{
"gte":1
}
}
},
{
"range":{
"duration":{
"lte":12
}
}
}
]
}
}
}
}
输出规则:对于一个项目,月,年,我们需要寻找下两个月,如果下两个月的总和(值)为0,那么它将符合输出条件。 对于Exapmle:对于A项,2020年8个月,总和(值)为0至2020年10个月。类似地,对于项目A,2020年9个月的总和(值)在接下来的两个月中是ot 0,所以它将不会产出。
问题内容: 我编写了一些代码,这些代码将搜索目录并在列表框中显示文件。 我什至尝试过: 我虽然出错了… 好的,它说的Users\Hunter很好,当人们获得我的软件时,名字就没有猎人了。那么,我该如何将其命名为任何用户的下载文件夹? 问题答案: WinAPI方法SHGetKnownFolderPath是检索特殊文件夹(包括个人文件夹和下载文件夹)路径的唯一正确方法。 还有其他方法可以获得相似的结果
我试图添加if-else语句来更改文本的颜色。然而,它并不能很好地工作。我希望只把40分以下的分数改成红色,但我不知道为什么我的文字都改成了红色。我能知道我犯了什么错误吗? 在if-else语句中,我编写了当标记低于40时更改文本颜色的代码。但是,它会将所有文本更改为红色。
我的简化模式如下所示: 我想找到所有叫艾伦的人。我看了这个非常相似的问题,但它发现的是团队,而不是人。我想这里也是。即使我没有persons集合,是否有返回persons的查询? 我想我可以使用引用的技术找到团队,然后撤出他们的人员。我猜是这样的: 但是还有更直接的方法,对吗?
问题内容: 我正在尝试使用Swift遍历放入Assets文件夹中的图像。我想遍历它们,然后将它们插入文件中,但是到目前为止,我还找不到如何获得类似的东西: 这可能吗?我一直在玩,但找不到任何东西。请告诉我。谢谢! 问题答案: Assets.xcassets不是文件夹,而是包含所有使用Assets.car作为其文件名的图像的存档。 如果你真的想读的资产文件,那么你需要使用一些库,可以提取像这样的文件
项目中经常会生成一些Git系统不需要追踪(track)的文件。典型的是在编译生成过程中 产生的文件或是编程器生成的临时备份文件。当然,你不追踪(track)这些文件,可以 平时不用"git add"去把它们加到索引中。 但是这样会很快变成一件烦人的事,你发现 项目中到处有未追踪(untracked)的文件; 这样也使"git add ." 和"git commit -a" 变得实际上没有用处,同时