Elasticsearch: результаты в единственном и множественном числе

В нашем сопоставлении мы использовали фильтр стеммера minimal_english. Это делается для того, чтобы для поиска были доступны только слова в единственном и множественном числе, а не похожие слова. например. Test и Tests должны быть доступны для поиска при вводе термина - Test - но Tester,Testers,Testing не должны быть. При попытке поиска с использованием приведенного ниже RESTful API типы атрибутов multi_field доступны для поиска, а типы атрибутов nested — нет:

curl -X GET "http://10.113.124.136:9400/libtester/_search?pretty=true" -d '{
  "query": {
    "query_string": {
      "query": " DescriptionDescription ",
      "fields": [
        "abc"
      ]
    }
  }
}'

Сопоставления показаны ниже:

{
  "properties": {
    "abc": {
      "type": "multi_field",
      "fields": {
        "c_asset_id": {
          "type": "string",
          "index": "analyzed",
          "include_in_all": true,
          "analyzer": "basic_english"
        },
        "untouched": {
          "type": "string",
          "index": "analyzed",
          "include_in_all": false,
          "analyzer": "string_lowercase"
        }
      }
    },
    "xyz": {
      "type": "nested",
      "properties": {
        "c_viewpoint": {
          "type": "multi_field",
          "fields": {
            "c_viewpoint": {
              "type": "string",
              "index": "analyzed",
              "include_in_all": true,
              "analyzer": "basic_english"
            },
            "untouched": {
              "type": "string",
              "index": "analyzed",
              "include_in_all": false,
              "analyzer": "string_lowercase"
            }
          }
        }
      }
    },
    ...
  }
}

Это связано с отображением вложенных типов - xyz, что они не доступны для поиска из того же API, что и типы multi_field?


person Himadri Pant    schedule 20.12.2012    source источник


Ответы (1)


Вы можете искать вложенные свойства, просто для этого требуется немного другой синтаксис. Вы должны указать путь, а затем явно использовать путь для каждого свойства, которое вы ищете.

Этот учебник содержит хороший обзор как работают вложенные документы.

person Zach    schedule 20.12.2012
comment
Спасибо, Зак, я смог правильно искать термины в единственном и множественном числе. Однако я заметил, что некоторые термины, такие как «обувь», «мышь» и «лист», не работают. Можете ли вы что-то предложить по этому поводу? - person Himadri Pant; 31.12.2012
comment
Вероятно, проблема в том, как вы анализируете термины для поиска или для индекса. Два из этих терминов имеют нетипичные формы множественного числа (например, мыши, листья). Мое первое предположение состоит в том, что что-то не так с тем, как вы стеммите, но это трудно понять, не видя ваших полных анализаторов. - person Zach; 31.12.2012