Как обеспечить добавление в хранилище данных только уникальных JSON документов? - PullRequest
0 голосов
/ 04 февраля 2020

После нескольких запусков база данных twitter начинает увеличиваться:

thufir@dur:~/NetBeansProjects/twitterBaseX$ 
thufir@dur:~/NetBeansProjects/twitterBaseX$ basex
BaseX 9.0.1 [Standalone]
Try 'help' to get more information.
> 
> list
Name                 Resources  Size    Input Path                               
-------------------------------------------------------------------------------
com.w3schools.books  1          6290    https://www.w3schools.com/xml/books.xml  
twitter              75         457900                                           
w3school_data        1          5209    https://www.w3schools.com/xml/note.xml   

3 database(s).
> 
> exit
Have a nice day.
thufir@dur:~/NetBeansProjects/twitterBaseX$ 

Однако большинство из них являются дубликатами - фактически подавляющее большинство.

Какой разумный подход к обеспечению уникальности?

Соответствующий код :

    new Open(databaseName).execute(context);
    new Set("parser", "json").execute(context);
    Command add = null;
    for (int i = 0; i < tweets.length(); i++) {
        json = tweets.get(i).toString();
        add = new Add("json.xml");
        add.setInput(new ArrayInput(json));
        add.execute(context);
    }

Я рассматривал сравнение "снежинки" для каждого твита , но является ли это разумной стратегией?

Может ли она быть настроена внутри самого BaseX или только за пределами базы данных?

...