W
W
webportal2016-02-03 11:08:51
elasticsearch
webportal, 2016-02-03 11:08:51

How to search in an array field in ElasticSearch?

There is an index with such a mapping

{
   "words": {
      "mappings": {
         "word": {
            "properties": {
               "_id": {
                  "type": "string"
               },
               "defs": {
                  "properties": {
                     "text": {
                        "type": "string",
                        "analyzer": "terms_defs"
                     }
                  }
               },
               "termin": {
                  "type": "string"
               }
            }
         }
      }
   }
}

It contains documents like
{
            "_index": "words",
            "_type": "word",
            "_id": "5697a367a3cb0a39705aa739",
            "_score": 1,
            "_source": {
               "termin": "СТЕРЕОФОТОГРАММЕТРИЯ",
               "defs": [
                  {
                     "text": "наука, изучающий методы измерения объемных форм по паре фотоснимков"
                  },
                  {
                     "text": "раздел фотограмметрии, изучающий методы измерения объемных форм по стереопарам фотоснимков"
                  },
                  {
                     "text": "наука, изучающая методы измерения объемных форм (например, рельефа местности) по стереопаре фотоснимков, основанные на использовании стереоскопического эффекта и измерении объемной модели местности специальными приборами"
                  }
               ],
               "_id": "5697a367a3cb0a39705aa739"
            }
         }

It is necessary that, for example, this document is found by the request "photogrammetry section" and not found by the request "science of photogrammetry"
For example, such a request now finds this document:
{
    "query":{
        "bool": {
            "should": [{
                "function_score": {
                    "query": {
                        "match": {
                            "defs.text": {
                                "query": "наука фотограмметрии",
                                "fuzziness": "AUTO",
                                "operator":  "and"
                            }
                        }
                    }
                }
            }]
        }
    }
}

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question