如何使用空格和其他字符查询嵌套路径

时间:2018-10-26 08:37:06

标签: elasticsearch elasticsearch-dsl elasticsearch-dsl-py

我有一个相当“复杂”的elasticsearch文档,该文档的路径中存在空格。有什么方法可以使查询工作而无需重新索引? :)

"_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”],但这也不起作用。

理想情况下,我不想重新索引,因为该集合确实很大。

0 个答案:

没有答案