Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 473 lines (380 sloc) 15.033 kb
5d4e56a Robert Newson update readme.
authored
1 <h1>News</h1>
2
c6356fd Robert Newson update README.md and TODO to reflect progress.
authored
3 The indexing API in 0.3 has changed since 0.2 to allow multiple design documents and "views" into Lucene. It will moves the Lucene-specific stuff into an options object.
764563b Robert Newson update news in README.
authored
4
8bc0cb8 Robert Newson add warning about the changes. 0.3 is not far away\!
authored
5 Note: This documentation is slightly ahead of the code. In particular, the "defaults" field and the "language" and "analyzer" options are not yet available. I wanted to expose the new API now that I've had time to verify that it's working.
6
c6356fd Robert Newson update README.md and TODO to reflect progress.
authored
7 <h1>Issue Tracking</h1>
6b2b22c Robert Newson add lighthouseapp link.
authored
8 Issue tracking now available at <a href="http://rnewson.lighthouseapp.com/projects/27420-couchdb-lucene"/>lighthouseapp</a>.
5d4e56a Robert Newson update readme.
authored
9
ef3f787 Robert Newson add sysreq for Sun JDK.
authored
10 <h1>System Requirements</h1>
11
12 Sun JDK 5 or higher is necessary. Couchdb-lucene is known to be incompatible with OpenJDK as it includes an earlier, and incompatible, version of the Rhino Javascript library.
13
5220b65 Robert Newson tweak README.md
authored
14 <h1>Build couchdb-lucene</h1>
b207965 Robert Newson improve README readability.
authored
15
16 <ol>
17 <li>Install Maven 2.
18 <li>checkout repository
19 <li>type 'mvn'
20 <li>configure couchdb (see below)
21 </ol>
22
23 <h1>Configure CouchDB</h1>
24
25 <pre>
0563120 Robert Newson fixes.
authored
26 [couchdb]
27 os_process_timeout=60000 ; increase the timeout from 5 seconds.
28
b207965 Robert Newson improve README readability.
authored
29 [external]
77d4f67 Robert Newson fix readme.
authored
30 fti=/usr/bin/java -jar /path/to/couchdb-lucene*-jar-with-dependencies.jar -search
a2e9024 Robert Newson wip
authored
31
32 [update_notification]
33 indexer=/usr/bin/java -jar /path/to/couchdb-lucene*-jar-with-dependencies.jar -index
b207965 Robert Newson improve README readability.
authored
34
35 [httpd_db_handlers]
36 _fti = {couch_httpd_external, handle_external_req, <<"fti">>}
37 </pre>
38
39 <h1>Indexing Strategy</h1>
40
4a60080 Robert Newson use couchdb's content_type rather than auto-detect.
authored
41 <h2>Document Indexing</h2>
42
697884b Robert Newson documentation of future features.
authored
43 You must supply a index function in order to enable couchdb-lucene as by default, nothing will be indexed.
a2e9024 Robert Newson wip
authored
44
697884b Robert Newson documentation of future features.
authored
45 You may add any number of index views in any number of design documents. All searches will be constrained to documents emitted by those view functions.
c207a60 Robert Newson update README
authored
46
697884b Robert Newson documentation of future features.
authored
47 Declare your functions as follows;
a2e9024 Robert Newson wip
authored
48
697884b Robert Newson documentation of future features.
authored
49 <pre>
50 {
8ff99e1 Robert Newson tidy docs
authored
51 "views": {
52 <i>conventional view code goes here</i>
53 },
697884b Robert Newson documentation of future features.
authored
54 "fulltext": {
55 "by_subject": {
56 "defaults": { "store":"yes" },
57 "index":"function(doc) { var ret=new Document(); ret.add(doc.subject); return ret }"
58 },
59 "french_documents": {
60 "defaults": { "language":"fr" },
61 "index":"function(doc) { if (doc.language != "fr") { return null;} var ret=new Document(); <i>etc</i> return ret; }"
62 }
63 }
64 }
65 </pre>
66
67 A fulltext object contains multiple index view declarations. An index view consists of;
68
69 <dl>
70 <dt>defaults</dt><dd>The default for numerous indexing options can be overridden here. A full list of options follows.</dd>
71 <dt>index</dt><dd>The indexing function itself, documented below.</dd>
72
73 <h3>The Defaults Object</h3>
74
75 The following indexing options can be defaulted;
76
77 <table>
78 <tr>
79 <th>name</th>
80 <th>description</th>
81 <th>available options</th>
82 <th>default</th>
83 </tr>
84 <tr>
a40523d Robert Newson documentation of future features.
authored
85 <th>field</th>
86 <td>the field name to index under</td>
87 <td>user-defined</td>
88 <td>default</td>
89 </tr>
90 <tr>
697884b Robert Newson documentation of future features.
authored
91 <th>store</th>
f16fc9c Robert Newson docs
authored
92 <td>whether the data is stored. The value will be returned in the search result.</td>
697884b Robert Newson documentation of future features.
authored
93 <td>yes, no</td>
94 <td>no</td>
95 </tr>
96 <tr>
97 <th>index</th>
98 <td>whether (and how) the data is indexed</td>
8328332 Robert Newson typo
authored
99 <td>analyzed, analyzed_no_norms, no, not_analyzed, not_analyzed_no_norms</td>
697884b Robert Newson documentation of future features.
authored
100 <td>analyzed</td>
101 </tr>
102 <tr>
103 <th>analyzer</th>
104 <td>how the data is analyzed</td>
24591d9 Robert Newson docs
authored
105 <td>auto, simple, standard</td>
106 <td>auto</td>
697884b Robert Newson documentation of future features.
authored
107 </tr>
108 <tr>
109 <th>language</th>
110 <td>which language the data is in</td>
c6356fd Robert Newson update README.md and TODO to reflect progress.
authored
111 <td>auto, br, cjk, cn, cz, de, el, en, fr, nl, ru, th</td>
697884b Robert Newson documentation of future features.
authored
112 <td>en</td>
113 </tr>
114 </table>
087dcec Robert Newson update documentation.
authored
115
116 <h3>The Document class</h3>
117
118 You may construct a new Document instance with;
119
120 <pre>
121 var doc = new Document();
122 </pre>
123
a40523d Robert Newson documentation of future features.
authored
124 Data may be added to this document with the add method which takes an optional second object argument that can override any of the above default values.
087dcec Robert Newson update documentation.
authored
125
4111703 Robert Newson automatically detect Dates, remove special date() method.
authored
126 The data is usually interpreted as a String but couchdb-lucene provides special handling if a Javascript Date object is passed. Specifically, the date is indexed as a numeric value, which allows correct sorting, and stored (if requested) in ISO 8601 format (with a timezone marker).
127
087dcec Robert Newson update documentation.
authored
128 <pre>
a40523d Robert Newson documentation of future features.
authored
129 // Add with all the defaults.
130 doc.add("value");
131
132 // Add a subject field.
133 doc.add("this is the subject line.", {"field":"subject"});
9a71557 Robert Newson formatting
authored
134
a40523d Robert Newson documentation of future features.
authored
135 // Add but ensure it's stored.
136 doc.add("value", {"store":"yes"});
9a71557 Robert Newson formatting
authored
137
a40523d Robert Newson documentation of future features.
authored
138 // Add but don't analyze.
139 doc.add("don't analyze me", {"index":"not_analyzed"});
9a71557 Robert Newson formatting
authored
140
141 // Extract text from the named attachment and index it (but not store it).
a40523d Robert Newson documentation of future features.
authored
142 doc.attachment("attachment name", {"field":"attachments"});
087dcec Robert Newson update documentation.
authored
143 </pre>
144
ccb81a8 Robert Newson add example transforms section.
authored
145 <h3>Example Transforms</h3>
146
390858a Robert Newson re-add Index Everything example.
authored
147 <h4>Index Everything</h4>
148
149 <pre>
150 function(doc) {
151 var ret = new Document();
152
153 function idx(obj) {
154 for (var key in obj) {
155 switch (typeof obj[key]) {
156 case 'object':
157 idx(obj[key]);
158 break;
159 case 'function':
160 break;
161 default:
c6356fd Robert Newson update README.md and TODO to reflect progress.
authored
162 ret.add(obj[key], {"field", key});
163 /*
164 * Uncomment next line to include
165 * all attributes into the default field.
0b6780f Robert Newson expand index-everything example
authored
166 */
c6356fd Robert Newson update README.md and TODO to reflect progress.
authored
167 // ret.add(obj[key]);
390858a Robert Newson re-add Index Everything example.
authored
168 break;
169 }
170 }
171 }
172
0b6780f Robert Newson expand index-everything example
authored
173 // Index all attributes
390858a Robert Newson re-add Index Everything example.
authored
174 idx(doc);
0b6780f Robert Newson expand index-everything example
authored
175
176 // Index all attachments
177 for(var a in doc._attachments) {
c6356fd Robert Newson update README.md and TODO to reflect progress.
authored
178 ret.add_attachment(a, {"field", "attachments"});
0b6780f Robert Newson expand index-everything example
authored
179 }
180
390858a Robert Newson re-add Index Everything example.
authored
181 return ret;
182 }
183 </pre>
184
ccb81a8 Robert Newson add example transforms section.
authored
185 <h4>Index Nothing</h4>
186
187 <pre>
188 function(doc) {
189 return null;
190 }
191 </pre>
192
c207a60 Robert Newson update README
authored
193 <h4>Index Select Fields</h4>
ccb81a8 Robert Newson add example transforms section.
authored
194
195 <pre>
196 function(doc) {
c207a60 Robert Newson update README
authored
197 var result = new Document();
c6356fd Robert Newson update README.md and TODO to reflect progress.
authored
198 result.add(doc.subject, {"field":"subject", "store":"yes"});
199 result.add(doc.content, {"field":"subject"});
200 result.add({"field":"indexed_at"});
c207a60 Robert Newson update README
authored
201 return result;
ccb81a8 Robert Newson add example transforms section.
authored
202 }
203 </pre>
204
c207a60 Robert Newson update README
authored
205 <h4>Index Attachments</h4>
ccb81a8 Robert Newson add example transforms section.
authored
206
207 <pre>
208 function(doc) {
c207a60 Robert Newson update README
authored
209 var result = new Document();
210 for(var a in doc._attachments) {
c6356fd Robert Newson update README.md and TODO to reflect progress.
authored
211 result.add_attachment(a, {"field":"attachment"});
ccb81a8 Robert Newson add example transforms section.
authored
212 }
c207a60 Robert Newson update README
authored
213 return result;
214 }
215 </pre>
216
217 <h4>A More Complex Example</h4>
218
219 <pre>
220 function(doc) {
221 var mk = function(name, value, group) {
c6356fd Robert Newson update README.md and TODO to reflect progress.
authored
222 var ret = new Document();
223 ret.add(value, {"field":group, "store":"yes"}); // ERROR
224 ret.add(group, {"field":"group", "store":"yes"});
c207a60 Robert Newson update README
authored
225 return ret;
226 };
227 var ret = [];
228 if(doc.type != "reference") return null;
229 for(var g in doc.groups) {
c6356fd Robert Newson update README.md and TODO to reflect progress.
authored
230 ret.add(mk("library", doc.groups[g].library, g));
231 ret.add(mk("method", doc.groups[g].method, g));
232 ret.add(mk("target", doc.groups[g].target, g));
c207a60 Robert Newson update README
authored
233 }
234 return ret;
235 }
236 </pre>
b207965 Robert Newson improve README readability.
authored
237
4a60080 Robert Newson use couchdb's content_type rather than auto-detect.
authored
238 <h2>Attachment Indexing</h2>
239
8059ce0 Robert Newson s/couchdb/couchdb-lucene
authored
240 Couchdb-lucene uses <a href="http://lucene.apache.org/tika/">Apache Tika</a> to index attachments of the following types, assuming the correct content_type is set in couchdb;
4a60080 Robert Newson use couchdb's content_type rather than auto-detect.
authored
241
ec94e21 Robert Newson updated README.md
authored
242 <h3>Supported Formats</h3>
243
4a60080 Robert Newson use couchdb's content_type rather than auto-detect.
authored
244 <ul>
245 <li>Excel spreadsheets (application/vnd.ms-excel)
246 <li>Word documents (application/msword)
247 <li>Powerpoint presentations (application/vnd.ms-powerpoint)
248 <li>Visio (application/vnd.visio)
249 <li>Outlook (application/vnd.ms-outlook)
250 <li>XML (application/xml)
251 <li>HTML (text/html)
252 <li>Images (image/*)
253 <li>Java class files
254 <li>Java jar archives
255 <li>MP3 (audio/mp3)
256 <li>OpenDocument (application/vnd.oasis.opendocument.*)
257 <li>Plain text (text/plain)
258 <li>PDF (application/pdf)
259 <li>RTF (application/rtf)
260 </ul>
261
b207965 Robert Newson improve README readability.
authored
262 <h1>Searching with couchdb-lucene</h1>
263
39b22c8 Robert Newson document that default search field is the _body field that attachment te...
authored
264 You can perform all types of queries using Lucene's default <a href="http://lucene.apache.org/java/2_4_0/queryparsersyntax.html">query syntax</a>. The _body field is searched by default which will include the extracted text from all attachments. The following parameters can be passed for more sophisticated searches;
b207965 Robert Newson improve README readability.
authored
265
266 <dl>
c6356fd Robert Newson update README.md and TODO to reflect progress.
authored
267 <dt>q</dt><dd>the query to run (e.g, subject:hello). If not specified, the default field is searched.</dd>
d9f05e7 Robert Newson add documentation for lang query parameter.
authored
268 <dt>lang</dt><dd>The language that the query parameter is in. Available options, and the default if not specified, are identical to the language option specified above.</dd>
f9c61e3 Robert Newson format README
authored
269 <dt>sort</dt><dd>the comma-separated fields to sort on. Prefix with / for ascending order and \ for descending order (ascending is the default if not specified).</dd>
270 <dt>limit</dt><dd>the maximum number of results to return</dd>
271 <dt>skip</dt><dd>the number of results to skip</dd>
272 <dt>include_docs</dt><dd>whether to include the source docs</dd>
273 <dt>stale=ok</dt><dd>If you set the <i>stale</i> option <i>ok</i>, couchdb-lucene may not perform any refreshing on the index. Searches may be faster as Lucene caches important data (especially for sorting). A query without stale=ok will use the latest data committed to the index.</dd>
274 <dt>debug</dt><dd>if false, a normal application/json response with results appears. if true, an pretty-printed HTML blob is returned instead.</dd>
275 <dt>rewrite</dt><dd>(EXPERT) if true, returns a json response with a rewritten query and term frequencies. This allows correct distributed scoring when combining the results from multiple nodes.</dd>
ad9096f Robert Newson tweak README.md
authored
276 </dl>
b207965 Robert Newson improve README readability.
authored
277
278 <i>All parameters except 'q' are optional.</i>
279
ec94e21 Robert Newson updated README.md
authored
280 <h2>Special Fields</h2>
281
282 <dl>
f9c61e3 Robert Newson format README
authored
283 <dt>_db</dt><dd>The source database of the document.</dd>
087dcec Robert Newson update documentation.
authored
284 <dt>_id</dt><dd>The _id of the document.</dd>
46a3a37 Robert Newson include all DC attributes, if present.
authored
285 </dl>
286
287 <h2>Dublin Core</h2>
288
289 All Dublin Core attributes are indexed and stored if detected in the attachment. Descriptions of the fields come from the Tika javadocs.
290
291 <dl>
f9c61e3 Robert Newson format README
authored
292 <dt>dc.contributor</dt><dd> An entity responsible for making contributions to the content of the resource.</dd>
293 <dt>dc.coverage</dt><dd>The extent or scope of the content of the resource.</dd>
294 <dt>dc.creator</dt><dd>An entity primarily responsible for making the content of the resource.</dd>
295 <dt>dc.date</dt><dd>A date associated with an event in the life cycle of the resource.</dd>
296 <dt>dc.description</dt><dd>An account of the content of the resource.</dd>
297 <dt>dc.format</dt><dd>Typically, Format may include the media-type or dimensions of the resource.</dd>
298 <dt>dc.identifier</dt><dd>Recommended best practice is to identify the resource by means of a string or number conforming to a formal identification system.</dd>
299 <dt>dc.language</dt><dd>A language of the intellectual content of the resource.</dd>
300 <dt>dc.modified</dt><dd>Date on which the resource was changed.</dd>
301 <dt>dc.publisher</dt><dd>An entity responsible for making the resource available.</dd>
302 <dt>dc.relation</dt><dd>A reference to a related resource.</dd>
303 <dt>dc.rights</dt><dd>Information about rights held in and over the resource.</dd>
304 <dt>dc.source</dt><dd>A reference to a resource from which the present resource is derived.</dd>
305 <dt>dc.subject</dt><dd>The topic of the content of the resource.</dd>
306 <dt>dc.title</dt><dd>A name given to the resource.</dd>
307 <dt>dc.type</dt><dd>The nature or genre of the content of the resource.</dd>
ec94e21 Robert Newson updated README.md
authored
308 </dl>
309
b207965 Robert Newson improve README readability.
authored
310 <h2>Examples</h2>
311
312 <pre>
313 http://localhost:5984/dbname/_fti?q=field_name:value
314 http://localhost:5984/dbname/_fti?q=field_name:value&sort=other_field
315 http://localhost:5984/dbname/_fti?debug=true&sort=billing_size&q=body:document AND customer:[A TO C]
316 </pre>
317
318 <h2>Search Results Format</h2>
319
0fcf578 Robert Newson update docs.
authored
320 The search result contains a number of fields at the top level, in addition to your search results.
321
322 <dl>
323 <dt>q</dt><dd>The query that was executed.</dd>
324 <dt>etag</dt><dd>An opaque token that reflects the current version of the index. This value is also returned in an ETag header to facilitate HTTP caching.</dd>
325 <dt>skip</dt><dd>The number of initial matches that was skipped.</dd>
326 <dt>limit</dt><dd>The maximum number of results that can appear.</dd>
327 <dt>total_rows</dt><dd>The total number of matches for this query.</dd>
328 <dt>search_duration</dt><dd>The number of milliseconds spent performing the search.</dd>
329 <dt>fetch_duration</dt><dd>The number of milliseconds spent retrieving the documents.</dd>
24591d9 Robert Newson docs
authored
330 <dt>rows</dt><dd>The search results array, described below.</dd>
0fcf578 Robert Newson update docs.
authored
331 </dl>
332
24591d9 Robert Newson docs
authored
333 <h2>The search results array</h2>
334
335 The search results arrays consists of zero, one or more objects with the following fields;
0fcf578 Robert Newson update docs.
authored
336
337 <dl>
338 <dt>id</dt><dd>The unique identifier for this match.</dd>
339 <dt>score</dt><dd>The normalized score (0.0-1.0, inclusive) for this match</dd>
340 <dt>fields</dt><dd>All the fields that were stored with this match</dd>
341 <dt>doc</dt><dd>The original document from couch, if requested with include_docs=true</dd>
342 </dl>
343
fd16315 Robert Newson update README.md
authored
344 Here's an example of a JSON response without sorting;
b207965 Robert Newson improve README readability.
authored
345
118d28e Robert Newson JSON example output.
authored
346 <pre>
347 {
c6356fd Robert Newson update README.md and TODO to reflect progress.
authored
348 "q": "+content:enron",
fd16315 Robert Newson update README.md
authored
349 "skip": 0,
350 "limit": 2,
351 "total_rows": 176852,
352 "search_duration": 518,
353 "fetch_duration": 4,
354 "rows": [
355 {
0fcf578 Robert Newson update docs.
authored
356 "id": "hain-m-all_documents-257.",
fd16315 Robert Newson update README.md
authored
357 "score": 1.601625680923462
358 },
359 {
0fcf578 Robert Newson update docs.
authored
360 "id": "hain-m-notes_inbox-257.",
fd16315 Robert Newson update README.md
authored
361 "score": 1.601625680923462
362 }
118d28e Robert Newson JSON example output.
authored
363 ]
364 }
365 </pre>
366
fd16315 Robert Newson update README.md
authored
367 And the same with sorting;
368
118d28e Robert Newson JSON example output.
authored
369 <pre>
370 {
0fcf578 Robert Newson update docs.
authored
371 "q": "+content:enron",
fd16315 Robert Newson update README.md
authored
372 "skip": 0,
373 "limit": 3,
374 "total_rows": 176852,
375 "search_duration": 660,
376 "fetch_duration": 4,
377 "sort_order": [
378 {
379 "field": "source",
380 "reverse": false,
381 "type": "string"
382 },
383 {
384 "reverse": false,
385 "type": "doc"
386 }
118d28e Robert Newson JSON example output.
authored
387 ],
fd16315 Robert Newson update README.md
authored
388 "rows": [
389 {
0fcf578 Robert Newson update docs.
authored
390 "id": "shankman-j-inbox-105.",
fd16315 Robert Newson update README.md
authored
391 "score": 0.6131107211112976,
392 "sort_order": [
393 "enron",
394 6
395 ]
396 },
397 {
0fcf578 Robert Newson update docs.
authored
398 "id": "shankman-j-inbox-8.",
fd16315 Robert Newson update README.md
authored
399 "score": 0.7492915391921997,
400 "sort_order": [
401 "enron",
402 7
403 ]
404 },
405 {
0fcf578 Robert Newson update docs.
authored
406 "id": "shankman-j-inbox-30.",
fd16315 Robert Newson update README.md
authored
407 "score": 0.507369875907898,
408 "sort_order": [
409 "enron",
410 8
411 ]
412 }
118d28e Robert Newson JSON example output.
authored
413 ]
414 }
415 </pre>
416
139a78c Robert Newson add info retrieval.
authored
417 <h1>Fetching information about the index</h1>
418
7a12058 Robert Newson docs
authored
419 Calling couchdb-lucene without arguments returns a JSON object with information about the <i>whole</i> index.
139a78c Robert Newson add info retrieval.
authored
420
421 <pre>
422 http://127.0.0.1:5984/enron/_fti
423 </pre>
424
425 returns;
426
427 <pre>
428 {"doc_count":517350,"doc_del_count":1,"disk_size":318543045}
429 </pre>
430
b207965 Robert Newson improve README readability.
authored
431 <h1>Working With The Source</h1>
432
433 To develop "live", type "mvn dependency:unpack-dependencies" and change the external line to something like this;
434
435 <pre>
490ae39 Robert Newson break long lines in README.md
authored
436 fti=/usr/bin/java -cp /path/to/couchdb-lucene/target/classes:\
5d5eb29 Robert Newson move to com.github.rnewson package.
authored
437 /path/to/couchdb-lucene/target/dependency com.github.rnewson.couchdb.lucene.Main
b207965 Robert Newson improve README readability.
authored
438 </pre>
439
440 You will need to restart CouchDB if you change couchdb-lucene source code but this is very fast.
441
442 <h1>Configuration</h1>
443
444 couchdb-lucene respects several system properties;
445
446 <dl>
f9c61e3 Robert Newson format README
authored
447 <dt>couchdb.url</dt><dd>the url to contact CouchDB with (default is "http://localhost:5984")</dd>
448 <dt>couchdb.lucene.dir</dt><dd>specify the path to the lucene indexes (the default is to make a directory called 'lucene' relative to couchdb's current working directory.</dd>
2b375b4 Robert Newson enhanced logging.
authored
449 <dt>couchdb.log.dir</dt><dd>specify the directory of the log file (which is called couchdb-lucene.log), defaults to the platform-specific temp directory.</dd>
b207965 Robert Newson improve README readability.
authored
450 </dl>
451
452 You can override these properties like this;
453
454 <pre>
fe20455 Robert Newson fix typo in documentation [#7 state:resolved]
authored
455 fti=/usr/bin/java -Dcouchdb.lucene.dir=/tmp \
490ae39 Robert Newson break long lines in README.md
authored
456 -cp /home/rnewson/Source/couchdb-lucene/target/classes:\
457 /home/rnewson/Source/couchdb-lucene/target/dependency\
5d5eb29 Robert Newson move to com.github.rnewson package.
authored
458 com.github.rnewson.couchdb.lucene.Main
b207965 Robert Newson improve README readability.
authored
459 </pre>
b2d01cc Robert Newson update README for basic auth.
authored
460
461 <h2>Basic Authentication</h2>
462
463 If you put couchdb behind an authenticating proxy you can still configure couchdb-lucene to pull from it by specifying additional system properties. Currently only Basic authentication is supported.
464
465 <dl>
f9c61e3 Robert Newson format README
authored
466 <dt>couchdb.user</dt><dd>the user to authenticate as.</dd>
467 <dt>couchdb.password</dt><dd>the password to authenticate with.</dd>
b2d01cc Robert Newson update README for basic auth.
authored
468 </dl>
ccb3c81 Robert Newson add note about ipv6 localhost workaround. [#12 state:resolved]
authored
469
470 <h2>IPv6</h2>
471
472 The default for couchdb.url is problematic on an IPv6 system. Specify -Dcouchdb.url=http://[::1]:5984 to resolve it.
Something went wrong with that request. Please try again.