#elasticsearch #search-engine
#elasticsearch #поисковая система
Вопрос:
Документ выглядит так:
doc = {
"id": 1,
"content": [
{
"txt": I,
"time": 0,
},
{
"txt": have bla bla,
"time": 1,
},
{
"txt": bla bla book,
"time": 2,
},
{
"txt": do not match this block,
"time": 3,
},
]
}
И поисковый запрос выглядит так:
"span_near": {
"clauses": [
{"span_term": {"content.txt": "I"}},
{"span_term": {"content.txt": "book"}},
],
"slop": 5,
"in_order": False,
}
И я хочу вернуть «content.time»: [0,1,2]
Теперь я знаю, что с помощью вложенного поля можно получить «content.time», но, похоже, «content.txt » разделяется между каждым блоком. И я хочу выполнить поиск всего «content.txt «похоже на сплющенную структуру, но все же может возвращать соответствующее «content.time». Кто-нибудь знает, как этого добиться? Спасибо!
Комментарии:
1.
[nested] query does not support [span_near]
не могли бы вы поделиться ожидаемым результатом поиска?2. Ожидаемый результат поиска похож на соответствие «content.txt » для «У меня есть книга бла-бла-бла-бла» и верните соответствующий «content.time»: [0,1,2].
3. Можете ли вы поделиться своим отображением для этой структуры? имеет
content
nested
тип?4. Привет, я не знаю, следует ли мне использовать вложенный или сплющенный тип, если я хочу получить соответствующий «content.time».