Массовое чтение документов Couchbase

digiKam

Офлайновые документы: K> Приложения> Справка> Руководства по приложениям> Графика> digiKam

digiKam> Использование digiKam> Использование цифровой камеры с digiKam> Создание автоматических созданий альбомов [ ! d3]

Онлайн-документы: http://docs.kde.org/development/en/extragear-graphics/digikam/using-camera.html

Если ваша камера содержит информацию о дате при съемке фотографии digiKam может использовать это для автоматического создания субальбом в целевом альбоме при его загрузке ...

Подключите устройство. В окне импорта digiKam есть настройки для «Автосоздания альбомов»

digiKam

Кажется, что digiKam ограниченный только одноуровневыми автоматическими подкаталогами.

Более ранний вопрос от пользователя digiKam ( http://docs.kde.org/development/en/extragear-graphics/digikam/using-camera.html ) список рассылки , сентябрь 2010 г. (http://mail.kde.org/pipermail/digikam-users/2010-September/011048.html).

Обходным путем является использование ExifTool ( http: / /mail.kde.org/pipermail/digikam-users/2010-September/011048.html «Переименование и / или перемещение файлов»):

Если ваша камера предоставляет информацию о дата съемки фотографии, digiKam может использовать это для автоматического создания субальбом в целевом альбоме при его загрузке ...

exiftool "-Directory

Например, следующая команда перемещает все изображения изначально в каталоге «DIR» в иерархию каталогов, организованную по году / месяцу / дню:

ExifTool ubuntu package: libimage-exiftool-perl.

Простым способом является загрузка изображений на основной каталог и перемещение изображений с помощью ExifTool. Существует также возможность добавить действие устройства KDE.

Пример с KDE / Kubuntu

http://userbase.kde.org/System_Settings/Device_Actions http: // techbase.kde.org/Development/Tutorials/Solid/Device_Actions.

У KDE есть редактируемые устройства / твердые действия:

У KDE есть gui для добавления / изменения действий устройства: Системные настройки> Действия с устройством.

A быстрый путь с командной строки:

mkdir -p ~/.kde/share/apps/solid/actions/

1) Создание локального каталога действий:

cp /usr/share/kde4/apps/solid/actions/digikam-opencamera.desktop ~/.kde/share/apps/solid/actions/movewithexiftools.desktop

2) копирование действия digiKam для работы в качестве шаблона:

[Desktop Entry]
X-KDE-Solid-Predicate=[ [ StorageVolume.ignored == false AND StorageVolume.usage == 'FileSystem' ] OR Camera.supportedDrivers == 'gphoto' ]
Type=Service
Actions=open;

[Desktop Action open]
# %f gives StorageAccess.filePath, %d gives Block.device, %i gives UDI
Exec=konsole --workdir ~/Pictures --noclose -e exiftool "-Directory

3) Редактирование нового действия после редактирования ~ / .kde / share / apps / solid / actions / movewithexiftools.desktop:

4) Перезагрузите

Тестирование с несколькими снимками

Теперь есть новая опция: Переместить с ExifTool.

enter image description here

Действие устройства показывает успех / неудача с терминалом:

Подкаталоги имеют формат / YYYY / MM / DD

enter image description here [!d42] [!d44 ]

0
задан 13 August 2018 в 14:01

3 ответа

Если вы используете узел запроса, для этого вы можете использовать N1QL. Ваш запрос будет выглядеть так:

SELECT * FROM myBucket USE KEYS ["key1", "key2", "key3"]

На практике вы, вероятно, передадите массив строк в качестве параметра, например:

SELECT * FROM myBucket USE KEYS ?

Вам понадобится первичный индекс для вашего ведра, или такие запросы не будут работать.

0
ответ дан 15 August 2018 в 17:04

SDK AFAIK couchbase не имеет нативной функции для операции объемного get.

У SDK node.js есть метод getMulti, но в основном это итерация по массиву, а затем get() запускается для каждого элемента.

Я нашел в своих приложениях, что подход key-value все еще быстрее, чем SELECT * в основном индексе, но запрос N1QL замечательно близок (на couchbase 5.x).

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

1
ответ дан 15 August 2018 в 17:04
  • 1
    Это верно в отношении отсутствия нативной функции на уровне протокола для массовых операций. Это означает, что getMutli будет быстрее, поскольку он будет отправлять все операции get в одно и то же время. Это уменьшит количество системных вызовов и объем работы, требуемых сервером приложений. – Paddy 14 August 2018 в 17:18

Получение нескольких документов с использованием идентификаторов документов по умолчанию не поддерживается в Couchbase Java SDK. Для этого вам нужно будет использовать запрос N1QL, как показано ниже

SELECT S.* FROM Student S USE KEYS ["StudentID1", "StudentID2", "StudentID3"]

, который возвращает массив документов с указанными идентификаторами. Постройте запрос с помощью com.couchbase.client.java.query.N1qlQuery и используйте любой из нижеприведенных действий для выполнения

. Если вы используете Spring CouchbaseTemplate Spring, вы можете использовать ниже

List<T> findByN1QL(com.couchbase.client.java.query.N1qlQuery n1ql,
                          Class<T> entityClass)

Если вы используете Spring CouchbaseTemplate , вы можете использовать ниже

N1qlQueryResult query(N1qlQuery query)

Обратите внимание, что вам понадобится index в вашем ковше для запуска запросов N1QL.

0
ответ дан 15 August 2018 в 17:04

Другие вопросы по тегам:

Похожие вопросы: