"userId": {
"properties": {
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"userId": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"userName": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
{
"query": {
"bool": {
"filter": [
{ "term": { "userId.userId": "testuser@demo.com"
}}
]
}
}
}
userid.userid
字段是text
类型。如果未定义分析器,elasticsearch默认使用标准分析器。这将把testuser@demo.com
标记为
{
"tokens": [
{
"token": "testuser",
"start_offset": 0,
"end_offset": 8,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "demo.com",
"start_offset": 9,
"end_offset": 17,
"type": "<ALPHANUM>",
"position": 1
}
]
}
您需要在userid.userid
字段上使用“userid.userid.keyword”
字段。这使用关键字分析器而不是标准分析器(注意userid.userid字段后面的“.keyword”)。
您的点击数为0,因为术语查询总是搜索完全匹配的术语。当您使用标准分析器(默认的分析器)进行搜索时,您不会得到正确的结果
{
"query": {
"bool": {
"filter": [
{
"term": {
"userId.userId.keyword": "testuser@demo.com"
}
}
]
}
}
}
{
"query": {
"bool": {
"filter": [
{
"terms": {
"userId.userId.keyword": [
"testuser@demo.com",
"abc.com"
]
}
}
]
}
}
}
{
"query": {
"bool": {
"must_not": {
"term": {
"userId.userId.keyword": "testuser@demo.com"
}
}
}
}
}
这是回应的一部分 我有联系人号码和名字 现在我的第二个查询->我正在使用术语筛选器查询上面的联系电话
我对Elasticsearch相当陌生,所以这是我的问题。我想用elasticsearch做一个搜索查询,想用多个术语过滤。 如果我想搜索用户'Tom',那么我希望获得用户'is active=1'、'is private=0'和'is owner=1'的所有匹配项。 这是我的搜索查询 谢谢你的帮助!!
如何在elasticsearch中使用与聚合相关的过滤器? 官方文档只给出了过滤器和聚合的小例子,没有对查询dsl进行正式描述——例如,将其与postgres文档进行比较。 通过尝试,我发现以下查询被elasticsearch接受(没有解析错误),但忽略了给定的过滤器: 有些人建议使用查询而不是过滤。但官方文件通常建议对精确值进行过滤。查询的另一个问题是:虽然过滤器提供了和,但查询不提供。 有人能
我正在尝试在Elastic 2中创建一个过滤索引别名。十、 以下是所有青少年的资料,不分性别。我只想在这个过滤器里看到雌性。 这就是我试图创建索引别名的原因: 我看了这个问题,似乎是相同的答案,但是我的JSON一定有问题。 Elasticsearch将范围和术语连接到相同的数组项
我有一个关于书籍的数据集,每本书都可以是一种或多种语言的。每个用户都注册为拥有一种或多种语言。 当用户搜索书籍时,我只想返回那些他们理解所有语言的书籍。 例如,系统中有以下两本书: 如果John被注册为懂英语、德语、法语和意大利语,那么他的查询结果永远不应该包括Book B。 我的系统目前是使用Apache Solr编写的,最后我编写了一个插件来执行子集操作(如果记录的语言是用户语言的子集,则该记
在Udemy教程中,我在这里遇到了这个查询: 我想知道是否有可能优化它?我在想两种可能的方法: > 将“流派”放入筛选器上下文中。但是一部电影可能有多种类型,所以我不确定使用type关键字和filter-term是否能在那里工作。 直接将“must_not”放在过滤器上下文中(没有bool)是行不通的,因为据我所知,过滤器不允许“过滤掉”,只允许“过滤保留什么”。但是如果我将must_not包装在