【作業記録】paraを単体で使ってみた

  • paraを使ってみた件
  • 前回はscooldとparaを組み合わせてQAサイトをローカルに構築しました
  • 今回はpara単体で使ってみようと思います
  • 環境とかバージョンとか諸々は次のとおりです(前回と同じ)
$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
$ docker -v
Docker version 20.10.7, build f0df350
$ docker-compose -v
docker-compose version 1.25.0, build unknown
$ node -v
v16.4.2
$ npm -v
7.18.1
  • 今回もDocker、docker-composeを使っていきます
  • docker-compose.yml はこちら
version: '3.4'

services:
   para:
     image: erudikaltd/para:latest_stable
     ports:
       - "8080:8080"
     volumes:
       - type: volume
         source: paraData
         target: /para/data
       - type: volume
         source: paraLib
         target: /para/lib
       - type: bind
         source: ./para-application.conf
         target: /para/application.conf
     restart: always
     environment:
       - JAVA_OPTS=-Dconfig.file=/para/application.conf -Dloader.path=/para/lib

volumes:
  paraData:
  paraLib:
  • 前回使ったものの流用です
  • 前回同様この後のセットアップは同じなので手順は省略します

  • para-cliを使ってオブジェクトを保存してみます
  • 次のファイルを作ります
{
    "id": 1,
    "type": "demo_json",
    "data": "hello, para!"
}
  • このファイルを保存します
$ para-cli create file.json
✔ Creating file.json
✔ Created 1 objects with a total size of 0 KB.
✔ Created 1 objects.
  • idをもとに検索してみます
$ para-cli search "id:1"
[
  {
    "id": "1",
    "type": "demo_json",
    "name": "file.json",
    "stored": true,
    "indexed": true,
    "cached": true,
    "version": 0,
    "timestamp": 1625975404319,
    "appid": "para",
    "votes": 0,
    "objectURI": "/demo_json/1",
    "plural": "demo_jsons",
    "data": "hello, para!"
  }
]
  • 作成したJSONの内容が返ってきました
  • かつ、いろいろな情報が追加されているのがわかりました
  • いろいろな検索を試してみましたが、とりあえずフィールドをキーにして検索はできるみたいです
    • typeフィールドで検索
    • $ para-cli search "type:demo_json"
    • nameフィールドで検索
    • $ para-cli search "name:file.json"
    • timestampフィールドで検索
    • $ para-cli search "timestamp:1625975404319"
  • ANDなどで検索条件を追加できます
    • $ para-cli search "id:1 AND type:demo_json"
  • ワイルドカードも使えました
    • $ para-cli search "id:1 AND type:demo_*"
  • 削除を試します
$ para-cli delete --id 1
✔ Deleted objects " [ '1' ] " from Para.
$ para-cli search "id:1"
[]