Эластичный поиск слов - PullRequest
0 голосов
/ 29 мая 2018

Мой образец эластичного индексного документа,

{ "_index": "testdata", "_type": "tweet", "_id": > "Dbo5qmMBSUBLqBARJmBG", "_version": 1, "_score": 1, "_source": { > "fileName": "alibaba.pdf", "chapter": "chapter1", "page": 1, > "timeDate": "2018-05-24T11:06:48+00:00", "text": "So why do we > need machine learning, why do we want a machine to learn as a human? > There are many problems involving huge datasets, or complex > calculations for instance, where it makes sense to let computers do > all the work. In general, of course, computers and robots dont get > tired, dont have to sleep, and may be cheaper. There is also an > emerging school of thought called active learning or > human-in-the-loop, which advocates combining the efforts of machine > learners and humans. The idea is that there are routine boring tasks > more suitable for computers, and creative tasks more suitable for > humans.According to this philosophy, machines are able to learn, by > following rules or algorithms designed by humans and to do repetitive
 and logic tasks desired by a human" } }

Итак, как я считаю слова вроде .. machine = 3, humans =2 и т. Д.

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

@ Сатей С Обратите внимание!Первая агрегация не работает, потому что terms aggregation работает только с типом ключевого слова.Также вторая агрегация не работает, синтаксис неправильный!

@ Prashant Patel Вы можете использовать терминvevector - doc здесь - для подсчета слов продуктов во всех документах в ваших коллекциях.Более простой способ состоит в том, чтобы изменить свое отображение и создать дубликат текста поля, но проиндексированный с типом данных ключевого слова, который допускает агрегирование терминов - документ здесь , а затем попробовать агрегацию, подобную этой:

{
    "query":{
        "term":{
            "_id":"Dbo5qmMBSUBLqBARJmBG"
        }   
    },
    "aggs" : {
        "text_aggregation" : {
            "terms" : { 
                "field" : "text.keyword" 
            }
        }
    }
}
0 голосов
/ 29 мая 2018

Возможно, вы хотите выполнить запрос агрегации.Это будет примерно так:

{
    "aggs" : {
        "text_aggregation" : {
            "terms" : { 
                "field" : "text" 
            }
        }
    }
}

Это будет работать для всего индекса.Если вы хотите запустить его на конкретном документе, вы можете использовать что-то вроде этого:

{
    "query":{
        "match":{
            "eventCodes":"ET00075293"
        }   
    },
    "aggs" : {
        "text_aggregation" : {
            "terms" : { 
                "fileName" : "alibaba.pdf" 
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...