具有过期字段的用户的 FusionAuth ElasticSearch
FusionAuth ElasticSearch for users with expiry field
我正在尝试列出所有设置了过期字段的用户。
我想创建一个列表,其中包含所有已过期的列表以及已将其设置为过期时间的列表。
第 1 步实际上是获取所有用户。但是,我没有使用文档建议的查询进行管理:
POST 请求:
{
"search": {
"numberOfResults": 50,
"query": "{\"exists\": {\"field\": \"expiry\"}}",
"sortFields": [
{
"missing": "_first",
"name": "email",
"order": "asc"
}
],
"startRow": 0
}
}
这个returns没有匹配项。我确信我至少有 3 个用户设置了到期字段。没有到期的字段甚至不存在。
我试过逆向查询:
"query": "{\"bool\": {\"must_not\": {\"exists\": {\"field\": \"user.id\"}}}}",
这让我获得了所有用户。
我还尝试了一个更简单的查询来验证它是否返回了某些东西。
expiry 是一个位于根上的元素,正如在 FusionAuth docs:
上看到的那样
{
"user": {
"birthDate": "1976-05-30",
"data": {
"displayName": "Johnny Boy",
"favoriteColors": [
"Red",
"Blue"
]
},
"email": "example@fusionauth.io",
"encryptionScheme": "salted-sha256",
"factor": 24000,
"expiry": 1571786483322,
"firstName": "John",
"fullName": "John Doe",
"imageUrl": "http://65.media.tumblr.com/tumblr_l7dbl0MHbU1qz50x3o1_500.png",
"lastName": "Doe",
"memberships": [{
...
谁能指出我遗漏了什么?这是查询的问题吗?
expiry
未编入索引,因此您将无法对其进行搜索。我们应该更新文档以指示哪些字段已编入索引,但在此之前您可以查看 elasticsearch 索引以了解这一点。
curl -XGET http://elasticsearchhost:port/fusionauth_user/_mapping
您可以提交功能请求以将过期添加到索引字段:https://github.com/fusionauth/fusionauth-issues/issues
这里有一个关于同一主题的论坛 post:https://fusionauth.io/community/forum/topic/1095/how-can-i-see-which-fields-are-indexed
我正在尝试列出所有设置了过期字段的用户。
我想创建一个列表,其中包含所有已过期的列表以及已将其设置为过期时间的列表。
第 1 步实际上是获取所有用户。但是,我没有使用文档建议的查询进行管理:
POST 请求:
{
"search": {
"numberOfResults": 50,
"query": "{\"exists\": {\"field\": \"expiry\"}}",
"sortFields": [
{
"missing": "_first",
"name": "email",
"order": "asc"
}
],
"startRow": 0
}
}
这个returns没有匹配项。我确信我至少有 3 个用户设置了到期字段。没有到期的字段甚至不存在。
我试过逆向查询:
"query": "{\"bool\": {\"must_not\": {\"exists\": {\"field\": \"user.id\"}}}}",
这让我获得了所有用户。 我还尝试了一个更简单的查询来验证它是否返回了某些东西。
expiry 是一个位于根上的元素,正如在 FusionAuth docs:
上看到的那样{
"user": {
"birthDate": "1976-05-30",
"data": {
"displayName": "Johnny Boy",
"favoriteColors": [
"Red",
"Blue"
]
},
"email": "example@fusionauth.io",
"encryptionScheme": "salted-sha256",
"factor": 24000,
"expiry": 1571786483322,
"firstName": "John",
"fullName": "John Doe",
"imageUrl": "http://65.media.tumblr.com/tumblr_l7dbl0MHbU1qz50x3o1_500.png",
"lastName": "Doe",
"memberships": [{
...
谁能指出我遗漏了什么?这是查询的问题吗?
expiry
未编入索引,因此您将无法对其进行搜索。我们应该更新文档以指示哪些字段已编入索引,但在此之前您可以查看 elasticsearch 索引以了解这一点。
curl -XGET http://elasticsearchhost:port/fusionauth_user/_mapping
您可以提交功能请求以将过期添加到索引字段:https://github.com/fusionauth/fusionauth-issues/issues
这里有一个关于同一主题的论坛 post:https://fusionauth.io/community/forum/topic/1095/how-can-i-see-which-fields-are-indexed