C# 如何在Elasticsearch中匹配搜索查询中的单个单词
假设我有一个名为C# 如何在Elasticsearch中匹配搜索查询中的单个单词,c#,elasticsearch,kibana,nest,C#,elasticsearch,Kibana,Nest,假设我有一个名为complexId的字段,它有一个带有特殊字符的值:fruit/1a.445/2.10.mango。因此,当我搜索类似于复杂ID水果/1a.445/2.10.mango的东西时,我应该能够得到结果 我想要的是,我希望弹性搜索至少匹配以下三个词中的一个: 1. Complex 2. ID 3. fruit/1a.445/2.10.mango 下面是我的两份文件: { "name": "Joe", "complexId": "fruit/1a.445/2.10.ma
complexId
的字段,它有一个带有特殊字符的值:fruit/1a.445/2.10.mango
。因此,当我搜索类似于复杂ID水果/1a.445/2.10.mango
的东西时,我应该能够得到结果
我想要的是,我希望弹性搜索至少匹配以下三个词中的一个:
1. Complex
2. ID
3. fruit/1a.445/2.10.mango
下面是我的两份文件:
{
"name": "Joe",
"complexId": "fruit/1a.445/2.10.mango"
},
{
"name": "Matt",
"complexId": "car/35.6a5/chevy.20"
}
用户搜索类似于诸如此类的水果/1a445/mango诸如此类的东西,他应该会得到以下结果:
{
"name": "Matt",
"complexId": "fruit/1a.445/2.10.mango"
}
我试过了,但没有得到任何结果:
{
"query": {
"bool": {
"match" :
{
complexId : "blah blah blah fruit/1a.445/2.10.mango blah blah"
}
}
}
}
字段complexId
有一个标准分析器
任何帮助都将不胜感激。标准分析仪在您的情况下不起作用
由于您具有特殊字符,因此在存储到ElasticSearch时将忽略该字符。尝试改用空白
分析器
POST _analyze
{
"analyzer": "whitespace",
"text": "blah blah blah fruit/1a.445/2.10.mango blah blah"
}
使用不同的分析仪,找到最适合您需要的分析仪
您也可以创建自己的自定义分析器