मेरे पास निम्नानुसार एक साधारण दस्तावेज़ संरचना है।

{
    "did" : "1",
    "uid" : "user1",
    "mid" : "pc-linux1",
    "path" : "/tmp/path1" 
}

मुझे लोचदार से पूछताछ करने की ज़रूरत है, जो सभी क्षेत्रों से बिल्कुल मेल खाता है

GET index2/_search
{
  "query": {
     "bool":{
      "must": [
        {
          "term" : { "uid" : "user1"}
        },
        {
          "term" : { "mid" : "pc-linux1"}
        },
        {
          "term" : { "did" : "1"}
        },
        {
          "term" : { "path" : "/tmp/path1"}
        }
      ]
    }
  }
}

मिलान खोजशब्दों पर किसी भी प्रकार के लोचदार 'विश्लेषण' के बिना होना चाहिए, ताकि "/tmp/path1" का पूर्ण पद के रूप में मिलान किया जा सके।

मैंने एक कस्टम मैपिंग का उपयोग करने की कोशिश की: with

"सूचकांक": झूठा

जो काम नहीं करता है।

PUT /index2?include_type_name=true
{
    "mappings" : {
      "_doc": {
      "properties" : {
        "did" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "index" : false,
              "ignore_above" : 256
            }
          }
        },
        "mid" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "index" : false,
              "ignore_above" : 256
            }
          }
        },
        "path" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "index" : false,
              "ignore_above" : 256
            }
          }
        },
        "uid" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "index" : false,
              "ignore_above" : 256
            }
          }
        }
      }
    }
  }
}

मैं लोचदार 7.0 का उपयोग कर रहा हूं और कुछ पोस्ट के साथ एक कस्टम मैपिंग का सुझाव दे रहा हूं

"सूचकांक": "not_analysed"

लोचदार 7.0 . में मान्य मैपिंग के रूप में स्वीकार नहीं किया जाता है

कोई सुझाव?

0
ashishsony 28 जिंदा 2020, 12:32

1 उत्तर

सबसे बढ़िया उत्तर

यदि आप सटीक शब्दों से मेल खाना चाहते हैं, तो इस क्वेरी को आजमाएं:

GET index2/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "uid": "user1"
          }
        },
        {
          "match": {
            "mid": "pc-linux1"
          }
        },
        {
          "match": {
            "did": "1"
          }
        },
        {
          "match": {
            "path": "/tmp/path1"
          }
        }
      ]
    }
  }
}
1
Ishara Madhawa 28 जिंदा 2020, 12:40