{"action":"created","issue":{"url":"https://api.github.com/repos/commonsearch/cosr-front/issues/18","repository_url":"https://api.github.com/repos/commonsearch/cosr-front","labels_url":"https://api.github.com/repos/commonsearch/cosr-front/issues/18/labels{/name}","comments_url":"https://api.github.com/repos/commonsearch/cosr-front/issues/18/comments","events_url":"https://api.github.com/repos/commonsearch/cosr-front/issues/18/events","html_url":"https://github.com/commonsearch/cosr-front/issues/18","id":135013722,"number":18,"title":"Phrasal search","user":{"login":"sylvinus","id":410452,"avatar_url":"https://avatars.githubusercontent.com/u/410452?v=3","gravatar_id":"","url":"https://api.github.com/users/sylvinus","html_url":"https://github.com/sylvinus","followers_url":"https://api.github.com/users/sylvinus/followers","following_url":"https://api.github.com/users/sylvinus/following{/other_user}","gists_url":"https://api.github.com/users/sylvinus/gists{/gist_id}","starred_url":"https://api.github.com/users/sylvinus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sylvinus/subscriptions","organizations_url":"https://api.github.com/users/sylvinus/orgs","repos_url":"https://api.github.com/users/sylvinus/repos","events_url":"https://api.github.com/users/sylvinus/events{/privacy}","received_events_url":"https://api.github.com/users/sylvinus/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/commonsearch/cosr-front/labels/enhancement","name":"enhancement","color":"fbca04"},{"url":"https://api.github.com/repos/commonsearch/cosr-front/labels/golang","name":"golang","color":"bfdadc"},{"url":"https://api.github.com/repos/commonsearch/cosr-front/labels/medium","name":"medium","color":"eb6420"},{"url":"https://api.github.com/repos/commonsearch/cosr-front/labels/needs%20discussion","name":"needs discussion","color":"009800"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2016-02-20T00:57:26Z","updated_at":"2016-10-13T18:33:29Z","closed_at":null,"body":"Queries like `\"new york times\"` should search for the exact sequence of words.\r\n\r\nElasticsearch [supports this](https://www.elastic.co/guide/en/elasticsearch/guide/current/phrase-matching.html), but it seems that if we want to mix phrase matches with regular matches we will have to do some preprocessing?"},"comment":{"url":"https://api.github.com/repos/commonsearch/cosr-front/issues/comments/253599072","html_url":"https://github.com/commonsearch/cosr-front/issues/18#issuecomment-253599072","issue_url":"https://api.github.com/repos/commonsearch/cosr-front/issues/18","id":253599072,"user":{"login":"amirouche","id":7444897,"avatar_url":"https://avatars.githubusercontent.com/u/7444897?v=3","gravatar_id":"","url":"https://api.github.com/users/amirouche","html_url":"https://github.com/amirouche","followers_url":"https://api.github.com/users/amirouche/followers","following_url":"https://api.github.com/users/amirouche/following{/other_user}","gists_url":"https://api.github.com/users/amirouche/gists{/gist_id}","starred_url":"https://api.github.com/users/amirouche/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amirouche/subscriptions","organizations_url":"https://api.github.com/users/amirouche/orgs","repos_url":"https://api.github.com/users/amirouche/repos","events_url":"https://api.github.com/users/amirouche/events{/privacy}","received_events_url":"https://api.github.com/users/amirouche/received_events","type":"User","site_admin":false},"created_at":"2016-10-13T18:33:29Z","updated_at":"2016-10-13T18:33:29Z","body":"> ;-)\r\n\r\nSo, you read my profile and you know that I am working on [a similar project using Scheme](https://github.com/amirouche/culturia) and hence I mostly do Scheme nowdays. I was just lurking around. Technically our projects differs in two important ways 1) you have multiple repositories for every component. Culturia has only one. I want to xp with single repository approach used at big5 companys. 2) In GNU Guile (GG!) there is no GIL (ahah!) hence viable multiple threads and a very single processus. I want it to be very easy to sysadmin also. For instance, in commonsearch work done by elasticsearch is done on a custom search engine built on top of wiredtiger storage engine. One of the advantage is that when I store my data in the FTS index I can span the ACID transaction until the correct data is written in the graph database part of the same storage engine. Otherwise said it's like ACID txn between PostgreSQL and Neo4j (which is difficult to do!). Which allows to share in a coherent set the actual \"search data\" and the crawling data. This could allows to implement some crazy transderivational search. And they will always be in sync. This is kind of parano thing but I like it. The bad news is scaling over multiple nodes is terrible. Its search speed is ok. CommonSearch is damn fast! What is the size of the index?\r\n\r\n> Elasticsearch supports this, but it seems that if we want to mix phrase matches with regular matches we will have to do some preprocessing\r\n\r\nWhat do you mean by preprocessing step? Do you want to change the way documents are indexed in ES? Or it's about crafting the correct ES json incantation? Also does the Query parser recognize the double quote operation as phrasal search somehow. For you culture (!), in culturia (!), it's implemented using an inverted index `(term-id, position-id, doc-id)`. E.g. to do phrasale search of `[\"new work times\"]`, the search engine will first do `[new]` search and retrieve a set of `(term-id, position-id, doc-id)` (it might be a generator over the results), then it only have to intersect with documents which follow the pattern `(\"work\", position-id+1, {{ doc-id }})` and then intersect with `(\"times\", position-id+2, {{doc-id}})`.\r\n\r\nBy the way I am `amz3` on #python-fr come and chat."}}
{"actor":{"display_login":"amirouche"}}