Синонимы Elasticsearch, возвращающие слишком много результатов - PullRequest
0 голосов
/ 05 февраля 2019

Я новичок вasticsearch, так что это может быть что-то простое, но я не могу заставить синонимы работать правильно.

мой индекс загружается и работает нормально

PUT /my-index
{
"settings" : {
"index" : {
    "analysis" : {
        "analyzer" : {
            "synonym" : {
                "tokenizer" : "whitespace",
                "filter" : ["lowercase", "synonym_filter"]
            }
        },
        "filter" : {
            "synonym_filter": {
              "type": "synonym",
              "format": "wordnet",
              "synonyms_path": "analysis/wn_s.pl",
              "filter": ["lowercase"]
          }
        }
    }
  }
},
"mappings": {
"doc": {
  "properties": {
    "field_name": {
      "type": "text",
      "analyzer": "synonym",
      "fields": {
        "exact": {
          "type": "text",
          "analyzer": "synonym"
        }
      }
     }
    }
   }
  }
}

Один разЯ проверяю свои токены, возвращенные мной, я получаю несколько дополнительных.

GET my-index/_analyze
{
 "analyzer" : "synonym",
 "text" : "kid"
}



{
 "tokens" : [
{
  "token" : "child",
  "start_offset" : 0,
  "end_offset" : 3,
  "type" : "SYNONYM",
  "position" : 0
},
{
  "token" : "kid",
  "start_offset" : 0,
  "end_offset" : 3,
  "type" : "SYNONYM",
  "position" : 0
},
{
  "token" : "fry",
  "start_offset" : 0,
  "end_offset" : 3,
  "type" : "SYNONYM",
  "position" : 1
},
{
  "token" : "kyd",
  "start_offset" : 0,
  "end_offset" : 3,
  "type" : "SYNONYM",
  "position" : 1
},
{
  "token" : "kid",
  "start_offset" : 0,
  "end_offset" : 3,
  "type" : "SYNONYM",
  "position" : 1
},
{
  "token" : "the",
  "start_offset" : 0,
  "end_offset" : 3,
  "type" : "SYNONYM",
  "position" : 1
},
{
  "token" : "leg",
  "start_offset" : 0,
  "end_offset" : 3,
  "type" : "SYNONYM",
  "position" : 2
},
{
  "token" : "of",
  "start_offset" : 0,
  "end_offset" : 3,
  "type" : "SYNONYM",
  "position" : 3
}
]
}

в поисках документов

GET my-index/doc/_search
{
 "query": {
 "simple_query_string": {
   "fields": [ "field_name" ],
   "query": "kid"
   }
 }
}

вот некоторые результаты, которые я получаю

{<br> "took":25, "_shards":{<br> "total":5, "successful":5 }, "hits":{<br> "total":5035, "hits":[<br> {<br> "field_name":"CHILD WITNESS CENTRE" }, {<br> "field_name":"KidsAbility Centre for Child Development" }, {<br> "field_name":"Kamloops Child Development Centre" }, {<br> "field_name":"The Child Advocacy Centre Of Niagara" }, {<br> "field_name":"Kidsability Centre For Child Development" }, {<br> "field_name":"Child Witness Centre Of Waterloo Region" }, {<br> "field_name":"Branch 133, Legion Village Foundation" }, {<br> "field_name":"Society Of St Vincent De Paul St Thomas C" }, {<br> "field_name":"OSNS CHILD DEVELOPEMENT CENTRE" }, {<br> "field_name":"Caledon Parent Child Centre" }, {<br> "field_name":"University of Calgary" } ] } }

asticsearch v6.5.2.Файл синонимов, который я взял с сайта wordnet

...