Json 查询elasticsearch匹配返回不精确文档
我试图检索包含Json 查询elasticsearch匹配返回不精确文档,json,elasticsearch,lucene,Json,elasticsearch,Lucene,我试图检索包含#maga的随机文档,因此我执行了以下查询: { "_source": "text", "query": { "function_score": { "query": { "match": { "text": "#maga" } }, "functions": [ { "random_score": {} } ]
#maga
的随机文档,因此我执行了以下查询:
{
"_source": "text",
"query": {
"function_score": {
"query": {
"match": {
"text": "#maga"
}
},
"functions": [
{
"random_score": {}
}
]
}
}
}
问题是一些返回的文档不包含
#maga
,而只包含令牌maga
。为什么会这样?如何解决这个问题?您的文本
字段可能是一个经过分析的字符串字段,并且
符号在索引时已被删除。您可以尝试使用术语
查询而不是匹配
,看看这是否解决了问题。当我使用术语(o文档)进行查询时,它不会返回任何结果。确定,这是因为您的文本
字段已被分析,并且在分析过程中删除了
符号。您需要将该字段设置为关键字
而不是文本
@mel您可以提供文本
字段的映射吗?如果可能,请提供一些您试图匹配的示例文档?可能您需要使用不同的分析器
,如空白
。。