У меня есть довольно «сложный» документ эластичного поиска, в котором есть пробелы. Есть ли способ заставить запрос работать без переиндексации? :)
"_source": {
"threads": {
"MANAGEMENT DISCUSSION SECTION": [],
"Q&A": [
{
"sentence_sentiment": [
{
"sentiment": {...}
}
],...
Мой текущий код выглядит примерно так.
def query_nested(path='threads.Q&A', to_match=None, *args, **kwargs):
q_match = None
if to_match:
for match in to_match:
if q_match is None:
q_match = Q("match", **match)
else:
q_match &= Q("match", **match)
q = Q("nested", path=path,
query=q_match,
inner_hits={})
s = Search()[kwargs.get('start', 0):kwargs.get('end', 25)]
s = s.query(q)
s = s.source(include=["title"])
s = s.sort('-year', '-month', '-day')
return s.execute()
return None
Но это приводит к неправильному запросу из-за .Q & A, конечно.
Я также пробовал с потоками ["Q & A"], но это тоже не работает.
В идеале я не хочу переиндексировать, поскольку коллекция действительно довольно большая.