{"action":"created","issue":{"url":"https://api.github.com/repos/couchbaselabs/cbforest/issues/61","repository_url":"https://api.github.com/repos/couchbaselabs/cbforest","labels_url":"https://api.github.com/repos/couchbaselabs/cbforest/issues/61/labels{/name}","comments_url":"https://api.github.com/repos/couchbaselabs/cbforest/issues/61/comments","events_url":"https://api.github.com/repos/couchbaselabs/cbforest/issues/61/events","html_url":"https://github.com/couchbaselabs/cbforest/issues/61","id":133467793,"number":61,"title":"Reimplement FTS using an external library (SQLite? CLucene?)","user":{"login":"snej","id":43241,"avatar_url":"https://avatars.githubusercontent.com/u/43241?v=3","gravatar_id":"","url":"https://api.github.com/users/snej","html_url":"https://github.com/snej","followers_url":"https://api.github.com/users/snej/followers","following_url":"https://api.github.com/users/snej/following{/other_user}","gists_url":"https://api.github.com/users/snej/gists{/gist_id}","starred_url":"https://api.github.com/users/snej/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/snej/subscriptions","organizations_url":"https://api.github.com/users/snej/orgs","repos_url":"https://api.github.com/users/snej/repos","events_url":"https://api.github.com/users/snej/events{/privacy}","received_events_url":"https://api.github.com/users/snej/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/couchbaselabs/cbforest/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2016-02-13T20:00:22Z","updated_at":"2016-07-13T02:57:53Z","closed_at":null,"body":"The full-text search implementation in CBForest is pretty basic. It doesn't have any fancy query features like boolean operators or even word-prefix matching, and it's not very fast. The best way to improve it is probably to replace it with an existing already-proven implementation.\r\n\r\nThe best choice, ironically, is SQLite. Its FTS4 is pretty good, and is what Couchbase Lite already uses with the default SQLite storage engine. It basically comes for free on iOS/Mac/Android.\r\n\r\nAnother alternative is CLucene, a C++ port of Lucene. It's rather a lot of code though (about 80,000 lines of C++.)\r\n\r\nThe result would be that the FTS storage for a view wouldn't be stored in ForestDB but in the external database used by the FTS library. The CBForest API would need to make this transparent so clients can use the same API for queries."},"comment":{"url":"https://api.github.com/repos/couchbaselabs/cbforest/issues/comments/232240986","html_url":"https://github.com/couchbaselabs/cbforest/issues/61#issuecomment-232240986","issue_url":"https://api.github.com/repos/couchbaselabs/cbforest/issues/61","id":232240986,"user":{"login":"brendand","id":586075,"avatar_url":"https://avatars.githubusercontent.com/u/586075?v=3","gravatar_id":"","url":"https://api.github.com/users/brendand","html_url":"https://github.com/brendand","followers_url":"https://api.github.com/users/brendand/followers","following_url":"https://api.github.com/users/brendand/following{/other_user}","gists_url":"https://api.github.com/users/brendand/gists{/gist_id}","starred_url":"https://api.github.com/users/brendand/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brendand/subscriptions","organizations_url":"https://api.github.com/users/brendand/orgs","repos_url":"https://api.github.com/users/brendand/repos","events_url":"https://api.github.com/users/brendand/events{/privacy}","received_events_url":"https://api.github.com/users/brendand/received_events","type":"User","site_admin":false},"created_at":"2016-07-13T02:57:53Z","updated_at":"2016-07-13T02:57:53Z","body":"@lucatorella Word-prefix matching is the only reason why I haven't switched to ForestDB just yet."}}
{"actor":{"display_login":"brendand"}}