弹性搜索类型文本未给出匹配查询的结果

时间:2019-03-24 04:05:44

标签: elasticsearch

我已经执行了两次查询

第一个映射如下所示:

"customer_details": {
        "mappings": {
            "pan_details": {
                "properties": {
                    "city": {
                        "type": "text",
                        "fields": {
                            "keyword": {
                                "type": "keyword",
                                "ignore_above": 256
                            }
                        }
                    },
                    "college": {
                        "type": "text",
                        "fields": {
                            "keyword": {
                                "type": "keyword",
                                "ignore_above": 256
                            }
                        }
                    },
                    "customer_mame": {
                        "type": "text",
                        "fields": {
                            "keyword": {
                                "type": "keyword",
                                "ignore_above": 256
                            }
                        }
                    },
                    "doc_url": {
                        "type": "text",
                        "fields": {
                            "keyword": {
                                "type": "keyword",
                                "ignore_above": 256
                            }
                        }
                    },
                    "pan_no": {
                        "type": "text",
                        "fields": {
                            "keyword": {
                                "type": "keyword",
                                "ignore_above": 256
                            }
                        }
                    }
                }
            }
        }
    }

为此,我写

{  
   "query":{  
      "match":{  
         "pan_no":"ABCDFGGG"
      }
   }
}

它给了我结果。

但是当我给出如下所示的映射时:

{
    "customer_details": {
        "mappings": {
            "pan_details": {
                "properties": {
                    "city": {
                        "type": "text"
                    },
                    "college": {
                        "type": "text"
                    },
                    "customer_name": {
                        "type": "text"
                    },
                    "doc_url": {
                        "type": "text"
                    },
                    "pan_no": {
                        "type": "text"
                    }
                }
            }
        }
    }
}

,查询为:

 {  
       "query":{  
          "match":{  
             "pan_no":"ABCDFGGG"
          }
       }
    }

这根本没有给我结果。

示例文档如下:

{
    "customer_mame": "Marcus Rodriguez",
    "pan_no": "ABCDEGFTY",
    "city": "San Fransisco",
    "college": "UCSB",
    "doc_url": [
      "www.google.com",
      "www.facebook.com",
      "www.twitter.com"
    ]
  }

现在,当我将pan_no输入为ABCD时,应该返回上述文档。

1 个答案:

答案 0 :(得分:0)

不确定上述映射为什么会得到不同的结果。基本上,这两个映射应产生与字段 pan_no 相同的结果。我已经在本地环境中测试了您的上述映射,并且得到了相同的结果。文本类型的默认分析器为“标准分析器”,并将给出查询结果(根据您的示例数据):

{  
   "query":{  
      "match":{  
         "pan_no":"ABCDEGFTY"
      }
   }
}
  

现在,当我输入pan_no作为ABCD时,它应该返回我   以上文件。

pan_no为ABCD,因为默认分析仪为标准分析仪,因此不会为您的样品提供任何数据。