【发布时间】:2018-05-09 17:39:22
【问题描述】:
我正在使用 ElasticSearch 6.2.3,并且正在索引 ID 为 URL 的文档。当我查询索引时:
GET /ecm_sync/_search
{
"query": {"match_all": {}}
}
我明白了:
...
"hits": [
{
"_index": "ecm_sync",
"_type": "doc",
"_id": "workspace://SpacesStore/07dfa82d-c6ce-469d-b881-4fab6cd9a277",
"_score": 1,
...
现在,如果我使用这个 URL 并尝试直接获取它:
GET /ecm_sync/_doc/workspace%3A%2F%2FSpacesStore%2F07dfa82d-c6ce-469d-b881-4fab6cd9a277
我明白了:
{
"_index": "ecm_sync",
"_type": "_doc",
"_id": "workspace://SpacesStore/07dfa82d-c6ce-469d-b881-4fab6cd9a277",
"found": false
}
同样的事情发生在 Kibana 和 curl 上。我很久以前就看到有一个未解决的问题,但它已关闭,所以我不知道我是否做错了什么。
【问题讨论】:
-
您是否尝试过不包含特殊字符的 ID?只是 UUID 部分?这会起作用吗?
-
是的,但它不起作用。我知道 ES 通过特殊字符对字段进行标记,所以我不确定它是否对 ID 也一样。
-
看看这个问题/答案,与使用非默认 ID 的路由相关:stackoverflow.com/questions/21003370/… ...我没有提供它作为答案,因为它已经过时了,但也许有里面的东西你可以用。在过去,我必须指定一个映射来防止标记化。情况可能不再如此。
-
对不起,我不懂路由。我从来没有直接设置它。有没有办法列出所有路由?
-
有可能,但是我有一段时间没用elasticsearch了,所以我需要搜索一下。
标签: json elasticsearch