【问题标题】:Elastic search match_pharse query is not working properlyElasticsearch 匹配短语查询无法正常工作
【发布时间】:2018-06-11 02:08:42
【问题描述】:

我正在尝试在 kibana 中使用 match_phrase 查询搜索以下文档,但没有得到响应。

请在下面找到弹性搜索中可用的文档

    {  
       "took":7,
       "timed_out":false,
       "_shards":{  
          "total":5,
          "successful":5,
          "skipped":0,
          "failed":0
       },
       "hits":{  
          "total":2910,
          "max_score":1.0,
          "hits":[  
             {  
                "_index":"documents",
                "_type":"doc",
                "_id":"DmLD22MBFTg0XFZppYt8",
                "_score":1.0,
                "_source":{  
                   "doct_country":"DE",
                   "filename":"series_Accessories_v1_de-DE.pdf",


             }

          ]
       }
    }

请找到用于搜索上述文档的查询。

GET documents/_search
{
    "query": {
        "match_phrase" : {
            "message" : "Accessories_v1_de-DE.pdf"
        }
    }
}

对于上述查询,我​​得到了这个响应:

{
  "took": 0,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 0,
    "max_score": null,
    "hits": []
  }
}

【问题讨论】:

    标签: java elasticsearch kibana elastic-stack


    【解决方案1】:

    有两个问题。大概在您的查询中,您的意思是使用 filename 字段而不是您的示例文档中不存在的 message

    GET documents/_search
    {
        "query": {
            "match_phrase" : {
                "filename" : "Accessories_v1_de-DE.pdf"
            }
        }
    }
    

    其次,您需要 Elasticsearch 知道 filename 字段应该被索引,_ 被视为拆分。默认情况下不会发生这种情况。一种方法是按如下方式定义映射:

    PUT /documents
    {
        "mappings" : {
            "document" : {
                "properties" : {
                    "filename" : { "type" : "text", "analyzer": "simple" }
                }
            }
        }
    }
    

    简单分析器将拆分任何非字母,因此_ 和数字将被视为拆分。根据您的应用程序,您可能需要对标记化进行更细粒度的控制。请参阅documentation

    【讨论】:

    • 实际上是使用 Logstash JDBC 输入插件将 Oracle 数据库中的文档插入到 elasticsearch 中。那么我该如何进行这种映射...?
    • 您需要将映射直接应用到您的目标 Elasticsearch 集群。 JDBC 只是输入。您可以在此处查看更完整的示例:stackoverflow.com/questions/20454584/…
    • 是通过 kibana 一次性设置的.. 特定索引吗?
    猜你喜欢
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多