elasticsearch,lucene,Json,elasticsearch,Lucene" /> elasticsearch,lucene,Json,elasticsearch,Lucene" />

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您可以提供
文本
字段的映射吗?如果可能,请提供一些您试图匹配的示例文档?可能您需要使用不同的
分析器
,如
空白
。。