我是Elasticsearch的初学者,我试图将查询与术语位置和模糊相结合,结果并不是我所期望的。
我试过这个查询
{
"query": {
"bool": {
"must": [
{
"bool": {
"must": [
{
"query_string": {
"query": "douille~ raccordment~",
"fields": [
"name^10"
],
"default_operator": "AND",
"fuzziness": "AUTO:10,20"
}
}
],
"should": [
{
"span_first": {
"match": {
"span_multi": {
"match": {
"fuzzy": {
"name": {
"value": "douille",
"fuzziness": "AUTO"
}
}
}
}
},
"end": 1
}
},
{
"span_first": {
"match": {
"span_multi": {
"match": {
"fuzzy": {
"name": {
"value": "douille",
"fuzziness": "AUTO"
}
}
}
}
},
"end": 2
}
}
]
}
}
]
}
}
}
“raccordment”这个词(法语)拼写不好。正确的词是“raccordement”。我有一个产品“Douille Raccordement”在我的索引和产品与“Douille”没有“Raccordement”的名称,但不是在第一个位置在我的索引。当我尝试查询时,没有结果。
我的目标是通过搜索“douille raccordment”(基于术语位置,有或没有拼写错误)获得这样的结果:
- 杜耶拉考德芒
- Douille 1
- 10 Douilles
- 第1节
- Raccordement 2
我使用Elasticsearch 7。
你知道为什么吗?
谢谢你的帮助
1条答案
按热度按时间ou6hu8tu1#
你问题中的数据。此查询可帮助您:
输出量: