嵌套术语 ElasticSearch 7 问题/Elastica 不起作用 - 初学者
Nested Term ElasticSearch 7 problem / Elastica Don't work - BEGINNER
我试图在 ElasticSearch 的嵌套元素中使用 slug 进行精确搜索,但它似乎不起作用。
所以当我尝试使用 "my-slug" 进行简单的嵌套 匹配 时,我得到的结果是 “我的” 和 “slug”,正常...
GET my-index/_search
{
"query": {
"nested": {
"path": "productTranslation",
"query": {
"bool": {
"must": [
{
"match": {
"productTranslation.slug": "my-slug"
}
}
]
}
}
}
}
}
但是我尝试使用字词或过滤器搜索时没有结果。
GET my-index/_search
{
"query": {
"nested": {
"path": "productTranslation",
"query": {
"bool": {
"filter": [
{
"term": {
"productTranslation.slug": "my-slug"
}
}
]
}
}
}
}
}
知道错误在哪里吗??
感谢您的帮助。
词条查询不对词条执行任何分析。因此,在 term query 中,您需要进行完全匹配。
如果您没有明确定义任何映射,则需要将 .keyword
添加到 productTranslation.slug
字段。这使用关键字分析器而不是标准分析器(注意 productTranslation.slug
字段后的“.keyword”)。
{
"query": {
"nested": {
"path": "productTranslation",
"query": {
"bool": {
"filter": [
{
"term": {
"productTranslation.slug.keyword": "my-slug" // note this
}
}
]
}
}
}
}
}
或者您可以将 productTranslation.slug
字段的数据类型更改为关键字类型
{
"mappings": {
"properties": {
"productTranslation": {
"properties": {
"slug": {
"type": "keyword"
}
}
}
}
}
}
我试图在 ElasticSearch 的嵌套元素中使用 slug 进行精确搜索,但它似乎不起作用。
所以当我尝试使用 "my-slug" 进行简单的嵌套 匹配 时,我得到的结果是 “我的” 和 “slug”,正常...
GET my-index/_search
{
"query": {
"nested": {
"path": "productTranslation",
"query": {
"bool": {
"must": [
{
"match": {
"productTranslation.slug": "my-slug"
}
}
]
}
}
}
}
}
但是我尝试使用字词或过滤器搜索时没有结果。
GET my-index/_search
{
"query": {
"nested": {
"path": "productTranslation",
"query": {
"bool": {
"filter": [
{
"term": {
"productTranslation.slug": "my-slug"
}
}
]
}
}
}
}
}
知道错误在哪里吗??
感谢您的帮助。
词条查询不对词条执行任何分析。因此,在 term query 中,您需要进行完全匹配。
如果您没有明确定义任何映射,则需要将 .keyword
添加到 productTranslation.slug
字段。这使用关键字分析器而不是标准分析器(注意 productTranslation.slug
字段后的“.keyword”)。
{
"query": {
"nested": {
"path": "productTranslation",
"query": {
"bool": {
"filter": [
{
"term": {
"productTranslation.slug.keyword": "my-slug" // note this
}
}
]
}
}
}
}
}
或者您可以将 productTranslation.slug
字段的数据类型更改为关键字类型
{
"mappings": {
"properties": {
"productTranslation": {
"properties": {
"slug": {
"type": "keyword"
}
}
}
}
}
}