我有索引URI
contracts/_doc/
我将文件推送到此处,ID由SQL-DB预生成
这是来自JAVA客户端的代码示例:
final BulkRequest request = new BulkRequest();
contracts.forEach(e -> request.add(new IndexRequest(CONTRACT_INDEX,
CONTRACT_INDEX_TYPE,
String.valueOf(e.getId()))
.source("contractNumber", e.getContractNumber())
)
);
有时我需要查看索引中ID的最大值,然后发送此查询
{
"sort" : [
{ "_id" : {"order" : "desc"}}
],
"size": 1
}
问题在于,ElasticSearch始终返回的值不超过 9999
"hits": [
{
"_index": "contracts",
"_type": "_doc",
"_id": "9999",
"_score": null,
"_source": {
"contractNumber": "2000/290/990990"
},
"sort": [
"9999"
]
}
]
当我执行查询查询时:
{
"size": 10000
}
实际结果处于正确状态,我所有的ID都超过了9999,并按
contracts/_doc/10005
返回正确的结果。
请告知我如何解决这种情况
原因是您的ID是字符串,并且字符串是按字典顺序而不是数字顺序排序的,因此在字符串世界9999> 1000000中。
您应该做的是在文档中包含另一个与ID字段等效的数字字段,并按该数字字段排序。
我们有一个需要跨多个索引查询的要求,如下所示 我们使用的是ElasticSearch 5.1.1. http://localhost:9200/index1,index2,index3/type1,type2/_search 查询: 但是,我们可能无法预先知道该索引是否存在,如果上述任何一个索引都不存在,我们将得到以下错误。 一个明显的方法是检查索引是否已经存在,但我希望避免额外的调用。 注意:至
问题内容: 我正在使用并希望elasticsearch返回搜索的单词而不仅仅是点击。当我搜索单词并且模糊搜索找到单词时,我想知道是谁找到了它。 数据: 查询: 该查询将返回,但不知道是否找到它。 有人知道该怎么做或一个主意吗?我希望输出为。 问题答案: 您可以为此命名查询,方法是为每个查询命名。在结果中,每个匹配都将包含一个数组,其中包含匹配的查询的名称(例如及以下)。
问题内容: 今天,我了解并决定将其使用和测试。我知道整数是不可变的,因此id应该是(?)相同。但是,当我在提示中进行测试时,我注意到了一些细微的差异,并想找出其背后的原因。 凉!到目前为止,所有签出。但是之后… 好的,所以测试一下,我注意到此行为一直持续到256年。id最多可以是8位数字,然后257将返回更大的id,可以是15位数字。因此类型必须是8个字节。 所以我发现它与8个字节长有关,但是任何
关于搜索字段的两个问题: > 我想使用elastic4s dsl查找特定id是否存在。此查询elasticsearch API的aquivilent: 卷曲-XGET'http://localhost:9200/indexName/indexType/_search/exists?q=_id:foo' 但这会产生isExists无法检查的搜索定义 我想获取所有id,到目前为止,我得到了这个解决方案
我配置了一个类似以下内容的语句(在这里进行解释,前面没有实际的代码): 就像现在一样,应用程序代码通过调用mybatis/postgres来生成本身以获取下一个序列值,然后将其传递给。 我想重构此代码,以便在中创建。据我所知,一种方法是将语句中的替换为。另一种方法是使用: 我希望在这两种情况下都能得到id的值作为返回值;是否生成了新记录和新序列id,或者如果存在冲突/更新,则为现有id。如何执行此
我是MongoDB的新手,在这里有点疯狂。我正在使用最新的mongo java驱动程序版本和dropwizard。 我使用POJO向DDBB写入数据,这很有效。但是,在尝试获取元素时,我没有获得实际的\u id。以下是我尝试的内容: DDBB文档 人物类 返回值: 如您所见,它不会返回实际的id(例如603c249cbb33487d9baa49f8)。我尝试将id设置为字符串,但我得到的错误是解码