4 min

CouchDB

Apr 22, 2015 - I installed the following:

  • elasticsearch 1.5.1
  • plugin elasticsearch-river-couchdb 2.5.0

NodeJS and ElasticSearch
http://daemon.co.za/2012/05/elasticsearch-5-minutes/
https://github.com/AdrianRossouw/elasticsearch-example

http://daemon.co.za/2012/05/replacing-couchdb-views-with-elasticsearch/

http://www.ripariandata.com/blog/time-to-relax-installing-couchdb-and-elasticsearch

http://www.elasticsearch.cn/guide/reference/river/couchdb.html

https://github.com/elastic/elasticsearch-river-couchdb/

sudo -u elasticsearch /usr/share/elasticsearch/bin/elasticsearch -d -p /var/run/elasticsearch.pid --default.config=/etc/elasticsearch/elasticsearch.yml --default.path.home=/usr/share/elasticsearch --default.path.logs=/var/log/elasticsearch --default.path.data=/var/lib/elasticsearch --default.path.work=/tmp/elasticsearch --default.path.conf=/etc/elasticsearch

"added a line into /etc/init.d/elasticsearch to print out the above command:"

# Start Daemon
log_daemon_msg "sudo -u $ES_USER $DAEMON $DAEMON_OPTS"    # <-- Add this line
start-stop-daemon --start -b --user "$ES_USER" -c "$ES_USER" --pidfile "$PID_FILE" --exec $DAEMON -- $DAEMON_OPTS
log_end_msg $?

Searching

Book

http://guide.couchdb.org/draft/tour.html
https://pythonhosted.org/CouchDB/mapping.html
http://stackoverflow.com/questions/4773069/sorting-dates-in-couchdb-views

For easier searching, it's best to install Lucene

couch.js
https://github.com/halorgium/couchdb/blob/2c5f780d8284be5e2cb39f7f61acc5ef8d6fb50d/share/www/script/couch.js

Installed CouchDB on Oct 10, 2014.

apt-get install couchdb

It installed version 1.0.1.

Version 1.6.1 is available.

https://github.com/rnewson/couchdb-lucene


https://launchpad.net/~couchdb/+archive/ubuntu/stable

# install the ppa-finding tool
# for 12.04 release
sudo apt-get install python-software-properties -y
# for 14.04 release
sudo apt-get install software-properties-common -y
# add the ppa
sudo add-apt-repository ppa:couchdb/stable -y
# update cached list of packages
sudo apt-get update -y
# remove any existing couchdb binaries
sudo apt-get remove couchdb couchdb-bin couchdb-common -yf
# see my shiny goodness - note the version number displayed and ensure its what you expect
sudo apt-get -f install
sudo apt-get install -V couchdb
# manage via upstart
sudo stop couchdb
  couchdb stop/waiting
# update /etc/couchdb/local.ini with 'bind_address=0.0.0.0' as needed
sudo start couchdb
  couchdb start/running, process 17422
# check version
couchdb -V
    couchdb - Apache CouchDB 1.6.1

Good. Up to date. Oct 10, 2014

old post:
http://blog.woobling.org/2009/05/why-i-dont-use-couchdb.html

Perl

http://search.cpan.org/dist/CouchDB-Client/lib/CouchDB/Client.pm

The above main module is outdated or oldish, 2009.

http://cpanratings.perl.org/dist/CouchDB-Client

"Generally, when I have a choice I prefer AnyEvent::CouchDB."

http://search.cpan.org/~beppu/AnyEvent-CouchDB- 1.31/lib/AnyEvent/CouchDB.pm - (2011)

perl -MCPAN -e 'install CouchDB::Client'

Installed above Perl module on Oct 10, 2014. It took under one minute to install, unlike the nearly 10 minutes to complete the install of the MongoDB Perl client module.

Jan 2015

Commands

http://wiki.apache.org/couchdb/Complete_HTTP_API_Reference

CouchDB is API, HTTP, REST, JSON, and JavaScript driven.

in the file /etc/couchdb/local.ini set and uncomment the lines:
port=5984
bind_address=127.0.0.1

http://en.wikipedia.org/wiki/CouchDB

Accessing server information

curl http://127.0.0.1:5984/

Reponse:
{"couchdb":"Welcome","uuid":"2c6d440df9b206a8592c4f5db6f4e38a","version":"1.6.1","vendor":{"name":"Ubuntu","version":"12.04"}}

Creating a database

Creating a database named wiki

curl -X PUT http://127.0.0.1:5984/wiki

Response:
{"ok": true}


Attempting to create a second database named wiki

curl -X PUT http://127.0.0.1:5984/wiki

Response:
{"error":"file_exists", "reason":"The database could not be created, the file already exists."}

Get database info

Retrieve information about the wiki database

curl http://127.0.0.1:5984/wiki

{"db_name":"wiki","doc_count":0,"doc_del_count":0,"update_seq":0,"purge_seq":0,"compact_running":false,"disk_size":79,"data_size":0,"instance_start_time":"1412965274017838","disk_format_version":6,"committed_update_seq":0}

Create a document

Create a document, asking CouchDB to supply a document id

curl -X POST -H "Content-Type: application/json" --data '{ "text" : "Wikipedia on CouchDB", "rating": 5 }' http://127.0.0.1:5984/wiki

Response
{"ok":true,"id":"eadaefc9769de77b098009cfae000ef6","rev":"1-80fd6f7aeb55c83c8999b4613843af5d"}

Retrieve a document

curl http://127.0.0.1:5984/wiki/eadaefc9769de77b098009cfae000ef6

Response
{"_id":"eadaefc9769de77b098009cfae000ef6","_rev":"1-80fd6f7aeb55c83c8999b4613843af5d","text":"Wikipedia on CouchDB","rating":5}

Update document

http://wiki.apache.org/couchdb/HTTP_Document_API#PUT

curl -X PUT -H "Content-Type: application/json" --data '{ "text" : "Wikipedia on CouchDB", "rating": 0, "_rev":"1-80fd6f7aeb55c83c8999b4613843af5d"}' http://127.0.0.1:5984/wiki/eadaefc9769de77b098009cfae000ef6

Response
{"ok":true,"id":"eadaefc9769de77b098009cfae000ef6","rev":"2-5ba469fb0677c7293baab0403c478fd2"}

delete a document

curl -X DELETE http://127.0.0.1:5984/dbname/doc_id?rev=1-b42c8ec490cdf81c5d2b1243065b9aaf

delete a database

curl -vX DELETE http://127.0.0.1:5984/dbname

Etc.

[X] http://guide.couchdb.org/draft/cookbook.html

[X] http://guide.couchdb.org/draft/views.html

http://stackoverflow.com/questions/2923063/searching-by-key-in-apache-couchdb

http://sitr.us/2009/06/30/database-queries-the-couchdb-way.html

Apr 22, 2015

curl -X PUT '127.0.0.1:9200/_river/scaupdvlp1/_meta' -d '{ "type" : "couchdb", "couchdb" : { "host" : "localhost", "port" : 5984, "db" : "scaupdvlp1", "filter" : null }, "index" : { "index" : "scaupdvlp1", "type" : "scaupdvlp1", "bulk_size" : "100", "bulk_timeout" : "10ms" } }'

returned

{"_index":"_river","_type":"scaupdvlp1","_id":"_meta","_version":1,"created":true}

http://www.elastic.co/guide/en/elasticsearch/guide/current/pagination.html

http://www.elastic.co/guide/en/elasticsearch/guide/current/empty-search.html

http://www.elastic.co/guide/en/elasticsearch/guide/current/search-lite.html

http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#query-string-syntax

http://www.elastic.co/guide/en/elasticsearch/guide/current/query-dsl-intro.html

http://okfnlabs.org/blog/2013/07/01/elasticsearch-query-tutorial.html#curl-or-browser

https://gist.github.com/karussell/1639766


Search for 'MrX' in the 'name' field
+name:mrx
curl 'http://127.0.0.1:9200/dbname/indexname/_search?q=%2Bname%3Amrx&pretty=true'


Search for 'MrX' in the 'name' field that have a 'type' of 'author'.
+name:mrx +type:author
curl 'http://127.0.0.1:9200/dbname/indexname/_search?q=%2Bname%3Amrx+%2Btype%3Aauthor&pretty=true'


Search all fields for the term 'scarf'.
curl 'http://127.0.0.1:9200/dbname/indexname/_search?q=scarf&pretty=true'


Search the 'markup' field for the term 'scarf' for docs of type 'post' that have a status of 'public'.
+type:post +post_status:public +markup:scarf
curl 'http://127.0.0.1:9200/dbname/indexname/_search?q=%2Btype%3Apost+%2Bpost_status%3Apublic+%2Bmarkup%3Ascarf&pretty=true'

searching for exact phrase of 'looks like candy'.
curl 'http://127.0.0.1:9200/dbname/indexname/_search?q=%2Btype%3Apost+%2Bpost_status%3Apublic+%2Bmarkup%3Alooks+like+candy&pretty=true'

search for exact phrase of 'Scarf for Mom' with all lowercase text provided. search is case insensitive.

searching for exact phrase of 'looks like candy'.
curl 'http://127.0.0.1:9200/dbname/indexname/_search?q=%2Btype%3Apost+%2Bpost_status%3Apublic+%2Bmarkup%3Ascarf+for+mom&pretty=true'

The next query searches for tweets, using the following criteria:
  • The name field contains mary or john
  • The date is greater than 2014-09-10
  • The _all field contains either of the words aggregations or geo

+name:(mary john) +date:>2014-09-10 +(aggregations geo)

As a properly encoded query string, this looks like the slightly less readable result:

?q=%2Bname%3A(mary+john)+%2Bdate%3A%3E2014-09-10+%2B(aggregations+geo)

curl -XGET http://127.0.0.1:9200/scaupdvlp1/scaupdvlp1/_search -d '{"query" : { "term" : {"markup" : "scarf" }} }'

or

curl -XGET http://127.0.0.1:9200/scaupdvlp1/scaupdvlp1/_search -d '{"query" : { "match" : {"markup" : "scarf" }} }'

Mappings

http://gauth.fr/2012/08/exact-search-with-elasticsearch/

Dumping and Reloading

http://stackoverflow.com/questions/11639534/couchdb-dump-to-file-and-load-from-file

https://github.com/danielebailo/couchdb-dump

http://wiki.apache.org/couchdb/HTTP_Bulk_Document_API

curl -X GET <a href="http://localhost:5984/&lt;DATABASE_NAME&gt;/_all_docs?include_docs=true">http://localhost:5984/&lt;DATABASE_NAME&gt;/_all_docs?include_docs=true</a> &gt; FILE.txt
#database - #nosql - #json

From JR's : articles
764 words - 10804 chars - 4 min read
created on
updated on - #
source - versions



A     A     A     A     A

© 2013-2017 JotHut - Online notebook

current date: Apr 18, 2024 - 10:57 a.m. EDT