2015-09-04 4 views
1

Я индексируюсь документы какElasticSearch Возвращение подобранного элемента массива при поиске

{ 
    "words":[ 
    { 
     "word":"Rakennustietosäätiö", 
     "pos":[72, 3347, 97, 3642] 
    }, 
    { 
     "word":"homevauriot", 
     "pos":[792, 972, 1041, 1011] 
    }, 
    { 
     "word":"mikrobivauriot", 
     "pos":[1301, 972, 1572, 1005] 
    }, 
    { 
     "word":"kulkeutumisesta", 
     "pos":[616, 1643, 970, 168] 
    }, 
    { 
     "word":"terveyshaitoista", 
     "pos":[630, 1813, 981, 1861] 
    } 
    ], 
    "image":"K00277_1.jpg", 
    "pdf_file":"K00277.pdf", 
    "page":1 
} 

Тогда искать по слову «Rakennustietosäätiö». Я бы хотел, чтобы он возвращал согласованный документ, но содержал только согласованный элемент. В этом случае это

{ 
    "word":"Rakennustietosäätiö", 
    "pos":[72, 3347, 97, 3642] 
} 

ответ

0

Невозможно использовать эту структуру. Для достижения лучшего подхода будет parent child

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

+0

Спасибо. Но с родительским ребенком, можем ли мы иметь больше подобных, допустим, аналогичные родительские документы основываются на их детях? –

+0

Нет, один родитель для ребенка и любое количество детей для родителя. Других отношений нет. –

Смежные вопросы