elasticsearch Elasticsearch-按术语查找文档,该术语只是给定查询字符串的一部分,elasticsearch,elasticsearch" /> elasticsearch Elasticsearch-按术语查找文档,该术语只是给定查询字符串的一部分,elasticsearch,elasticsearch" />

elasticsearch Elasticsearch-按术语查找文档,该术语只是给定查询字符串的一部分

elasticsearch Elasticsearch-按术语查找文档,该术语只是给定查询字符串的一部分,elasticsearch,elasticsearch,我在elasticsearch中搜索时遇到问题,希望您能提供帮助 我想找到一个关键字标记化的文档,在索引中分析器只对其进行小写。当生成的术语是搜索查询的一部分时,我希望Elasticsearch找到它 示例搜索: "query": { "match": { "categoryNames": "CD&DVD Aufbewahrung schwarz" } } "_source": { "categoryId": 11972638, "ca

我在elasticsearch中搜索时遇到问题,希望您能提供帮助

我想找到一个关键字标记化的文档,在索引中分析器只对其进行小写。当生成的术语是搜索查询的一部分时,我希望Elasticsearch找到它

示例搜索:

 "query": {
    "match": {
      "categoryNames": "CD&DVD Aufbewahrung schwarz"
    }
  }
"_source": {
    "categoryId": 11972638,
    "categoryNames": [
        "DVD-Koffer",
        "CD-Koffer",
        "CD-Aufbewahrung",
        "DVD-Aufbwahrung",
        "DVD-Ordner",
        "EDV-DVD-Aufbewahrung",
        "EDV-CD-Aufbewahrung",
        "CD&DVD Aufbewahrung",
        "Multimediabox"
    ],
    "lvl3Id": 11972638
}
"analysis" : {
    "analyzer" : {
        "default" : {
             "type": "custom",
             "tokenizer": "keyword",
             "filter" : ["lowercase"]
         }
      }
 }
"cd&dvd aufbewahrung": {
    "term_freq": 1,
    "tokens": [
      ...
    ]
},
"cd-aufbewahrung": {
     "term_freq": 1,
     "tokens": [
       ...
      ]
},
"cd-koffer": {
      "term_freq": 1,
      "tokens": [
        ...
       ]
},
....
CD&DVD Aufbewahrung -> Found
CD&DVD aufbewahrung -> Found
schwarz CD&DVD Aufbewahrung -> Found
CD&DVD Aufbewahrung gelb -> Found
schwarz CD&DVD Aufbewahrung gelb -> Found
CD&DVD schwarz Aufbewahrung -> not Found
Aufbewahrung CD&DVD -> not Found
schwarz CD & DVD Aufbewahrung -> not Found
schwarzCD&DVD Aufbewahrung -> Not Found
我要查找的文档:

 "query": {
    "match": {
      "categoryNames": "CD&DVD Aufbewahrung schwarz"
    }
  }
"_source": {
    "categoryId": 11972638,
    "categoryNames": [
        "DVD-Koffer",
        "CD-Koffer",
        "CD-Aufbewahrung",
        "DVD-Aufbwahrung",
        "DVD-Ordner",
        "EDV-DVD-Aufbewahrung",
        "EDV-CD-Aufbewahrung",
        "CD&DVD Aufbewahrung",
        "Multimediabox"
    ],
    "lvl3Id": 11972638
}
"analysis" : {
    "analyzer" : {
        "default" : {
             "type": "custom",
             "tokenizer": "keyword",
             "filter" : ["lowercase"]
         }
      }
 }
"cd&dvd aufbewahrung": {
    "term_freq": 1,
    "tokens": [
      ...
    ]
},
"cd-aufbewahrung": {
     "term_freq": 1,
     "tokens": [
       ...
      ]
},
"cd-koffer": {
      "term_freq": 1,
      "tokens": [
        ...
       ]
},
....
CD&DVD Aufbewahrung -> Found
CD&DVD aufbewahrung -> Found
schwarz CD&DVD Aufbewahrung -> Found
CD&DVD Aufbewahrung gelb -> Found
schwarz CD&DVD Aufbewahrung gelb -> Found
CD&DVD schwarz Aufbewahrung -> not Found
Aufbewahrung CD&DVD -> not Found
schwarz CD & DVD Aufbewahrung -> not Found
schwarzCD&DVD Aufbewahrung -> Not Found
索引分析器:

 "query": {
    "match": {
      "categoryNames": "CD&DVD Aufbewahrung schwarz"
    }
  }
"_source": {
    "categoryId": 11972638,
    "categoryNames": [
        "DVD-Koffer",
        "CD-Koffer",
        "CD-Aufbewahrung",
        "DVD-Aufbwahrung",
        "DVD-Ordner",
        "EDV-DVD-Aufbewahrung",
        "EDV-CD-Aufbewahrung",
        "CD&DVD Aufbewahrung",
        "Multimediabox"
    ],
    "lvl3Id": 11972638
}
"analysis" : {
    "analyzer" : {
        "default" : {
             "type": "custom",
             "tokenizer": "keyword",
             "filter" : ["lowercase"]
         }
      }
 }
"cd&dvd aufbewahrung": {
    "term_freq": 1,
    "tokens": [
      ...
    ]
},
"cd-aufbewahrung": {
     "term_freq": 1,
     "tokens": [
       ...
      ]
},
"cd-koffer": {
      "term_freq": 1,
      "tokens": [
        ...
       ]
},
....
CD&DVD Aufbewahrung -> Found
CD&DVD aufbewahrung -> Found
schwarz CD&DVD Aufbewahrung -> Found
CD&DVD Aufbewahrung gelb -> Found
schwarz CD&DVD Aufbewahrung gelb -> Found
CD&DVD schwarz Aufbewahrung -> not Found
Aufbewahrung CD&DVD -> not Found
schwarz CD & DVD Aufbewahrung -> not Found
schwarzCD&DVD Aufbewahrung -> Not Found
我要查找的文档的术语向量:

 "query": {
    "match": {
      "categoryNames": "CD&DVD Aufbewahrung schwarz"
    }
  }
"_source": {
    "categoryId": 11972638,
    "categoryNames": [
        "DVD-Koffer",
        "CD-Koffer",
        "CD-Aufbewahrung",
        "DVD-Aufbwahrung",
        "DVD-Ordner",
        "EDV-DVD-Aufbewahrung",
        "EDV-CD-Aufbewahrung",
        "CD&DVD Aufbewahrung",
        "Multimediabox"
    ],
    "lvl3Id": 11972638
}
"analysis" : {
    "analyzer" : {
        "default" : {
             "type": "custom",
             "tokenizer": "keyword",
             "filter" : ["lowercase"]
         }
      }
 }
"cd&dvd aufbewahrung": {
    "term_freq": 1,
    "tokens": [
      ...
    ]
},
"cd-aufbewahrung": {
     "term_freq": 1,
     "tokens": [
       ...
      ]
},
"cd-koffer": {
      "term_freq": 1,
      "tokens": [
        ...
       ]
},
....
CD&DVD Aufbewahrung -> Found
CD&DVD aufbewahrung -> Found
schwarz CD&DVD Aufbewahrung -> Found
CD&DVD Aufbewahrung gelb -> Found
schwarz CD&DVD Aufbewahrung gelb -> Found
CD&DVD schwarz Aufbewahrung -> not Found
Aufbewahrung CD&DVD -> not Found
schwarz CD & DVD Aufbewahrung -> not Found
schwarzCD&DVD Aufbewahrung -> Not Found
我没有结果。当我只搜索“CD&DVD aufbewahrung”时,我找到了文档

我认为elasticsearch试图找到一个不存在的术语“CD&DVD Aufbewahrung schwarz”,而不是匹配“CD&DVD Aufbewahrung”而忽略“schwarz”

搜索不能使用标准分析器,因为只有“CD&DVD Aufbewahrung”才能找到“CD&DVD Aufbewahrung”,而不是仅包含“Aufbewahrung”或“Aufbewahrung CD&DVD”的术语,这一点很重要,例如,当使用空格分析术语时,将发现该术语

一些我对上述文档期望的示例搜索:

 "query": {
    "match": {
      "categoryNames": "CD&DVD Aufbewahrung schwarz"
    }
  }
"_source": {
    "categoryId": 11972638,
    "categoryNames": [
        "DVD-Koffer",
        "CD-Koffer",
        "CD-Aufbewahrung",
        "DVD-Aufbwahrung",
        "DVD-Ordner",
        "EDV-DVD-Aufbewahrung",
        "EDV-CD-Aufbewahrung",
        "CD&DVD Aufbewahrung",
        "Multimediabox"
    ],
    "lvl3Id": 11972638
}
"analysis" : {
    "analyzer" : {
        "default" : {
             "type": "custom",
             "tokenizer": "keyword",
             "filter" : ["lowercase"]
         }
      }
 }
"cd&dvd aufbewahrung": {
    "term_freq": 1,
    "tokens": [
      ...
    ]
},
"cd-aufbewahrung": {
     "term_freq": 1,
     "tokens": [
       ...
      ]
},
"cd-koffer": {
      "term_freq": 1,
      "tokens": [
        ...
       ]
},
....
CD&DVD Aufbewahrung -> Found
CD&DVD aufbewahrung -> Found
schwarz CD&DVD Aufbewahrung -> Found
CD&DVD Aufbewahrung gelb -> Found
schwarz CD&DVD Aufbewahrung gelb -> Found
CD&DVD schwarz Aufbewahrung -> not Found
Aufbewahrung CD&DVD -> not Found
schwarz CD & DVD Aufbewahrung -> not Found
schwarzCD&DVD Aufbewahrung -> Not Found

有人知道如何解决这个问题吗?

也许定制的analyzer在这里会有所帮助。请参阅下面的代码:

映射 样本数据 搜索查询 后果