JTR
JTR

Reputation: 23

Elasticsearch: Searching for fields with mapping not_analyzed get no hits

I have elasticsearch running and do all my requests with nodejs. I have the following mapping applied for my index "mastert4":

{
  "mappings": {
    "mastert4": {
      "properties": {
        "s": {
          "type": "string",
          "index": "not_analyzed"
        }
      }
    }
  }
}

I added exactly one document to the index which looks pretty much like this:

{
  "master": {
    "vi": "ff155d9696818dde0627e14c79ba5d344c3ef01d",
    "s": "Anne Will"
  }
}

Now doing any of the following search queries will not return any hits:

{
  "index": "mastert4",
  "body": {
    "query": {
      "filtered": {
        "query": {
          "match"/"term": {
            "s": "anne will"/"Anne Will"
         }
       }
     }
   }
 }

}

But the following query will return the exact document:

    {
      "index": "mastert4",
      "body": {
        "query": {
          "filtered": {
            "query": {
              "constant_score": {
                "filter": [
                  {
                    "missing": {
                      "field": "s"
                    }
                  }
                ]
              }
            }
          }
        }
      }
    }

And if I search for

    {
      "exists": {
        "field": "s"
      }
    }

I will get no hits again.

When analyzing the field itsself I get:

{
  "tokens": [
    {
      "token": "Anne Will",
      "start_offset": 0,
      "end_offset": 9,
      "type": "word",
      "position": 1
    }
  ]
}

I'm really in a dead end here. Can someone tell me where I did wrong? Thx!!!!

Upvotes: 0

Views: 302

Answers (1)

Val
Val

Reputation: 217274

You've enclosed the fields s and vi inside an outer field called master which is not declared in your mapping. That's the reason. If you query for master.s, you'll get results.

The second solution is to remove the enclosing master object in your document and that will work also:

{
    "vi": "ff155d9696818dde0627e14c79ba5d344c3ef01d",
    "s": "Anne Will"
}

Upvotes: 1

Related Questions