гонт во вложенном объекте - PullRequest
0 голосов
/ 17 июня 2019

В Elasticsearch 6.3 я пытаюсь применить запрос биграммы в поле вложенного объекта, который генерирует данные биграммы путем объединения всех значений во вложенном поле. Ниже приведены сопоставления.

 PUT /testindex
     {
     "settings": {
       "analysis": {
         "analyzer": {
              "my_shingles_test": {
                "tokenizer": "standard",
                "filter": [
                  "shingles"
                ]
              }
            },
            "filter": {
              "shingles": {
                "type": "shingle",
                "min_shingle_size": 2,
                "max_shingle_size": 3,
                "output_unigrams": false
              }
            }
          }
        },
    "mappings": {
    "default" :{
    "properties" : {
    "book_name":{
    "type":"text"
    },
    "book_id":{
    "type": "integer"
    },
    "book_attributes":{
    "type":"nested",
    "properties": {
    "search_term":{
    "type":"nested"
    "analyzer": "my_shingles_test"
    }
   }
  }
}

Here's the sample data:

        {
        "book_name":"xyz",
        "book_id":123,
        "book_attributes":[
        {
        "search_term":[
        "paperback"
        ]
        },
        {
        "search_term":[
        "best selling"
        ]
        }
        ]
        },
        {
        "book_name":"abc",
        "book_id":456,
        "book_attributes":[
        {
        "search_term":[
        "hardcover"
        ]
        },
        {
        "search_term":[
        "best author"
        ]
        },
        {
        "search_term":[
        "best selling"
        ]
        }
       ]
      }

Здесь я хочу создать биграмму и триграмму для всего поискового термина документа как [мягкая обложка, лучшая продажа, мягкая обложка, лучшая продажа]. Когда кто-то ищет книгу в мягкой обложке, он должен вернуть только книгу с 123 ID. Я пытался, но он не возвращает ожидаемых результатов.

...