Re:Full-Text Search in JavaScript
by azdle on Sunday October 18, 2015 @03:09PM
(#10409343)
Theres also http://elasticlunr.com/, I'm not sure what algorithm it uses, but the site says "Elasticlunr.js use quite the same scoring mechanism as Elasticsearch, and also this scoring mechanism is used by lucene.", so maybe? I can't say I know that much about this topic...
I actually just used that library in creating a search for the docs site where I work and I have to say it works really well, it's a fully static site (hosted on github pages) and all the search is done in the browser based on an json "index" file that I generate along side the rest of the site. http://docs.exosite.com/
Re:Full-Text Search in JavaScript
by olivernn on Sunday October 18, 2015 @06:15PM
(#10410043)
The last time this article was on HN I took a look at adding Okapi BM25 to lunr, from what I remember the changes don't seem to huge, its just a matter of getting the time to sit down and implement it!
Re:Full-Text Search in JavaScript
by andor on Sunday October 18, 2015 @06:15AM
(#10407761)
I'd call that Information Retrieval, not Machine Learning. Indexing documents doesn't "learn" any more than a file system storing files, and TF-IDF and BM25 are simply weighting functions.
But of course, it's an interesting topic. If you want to learn more, the first edition of the most widely used textbook is free:
Re:Full-Text Search in JavaScript
by quesera on Sunday October 18, 2015 @09:30AM
(#10408171)
No magic. "www-nlp" and "www" are explicitly configured to point to the same IP address in the DNS.
Then (in the simplest case) the responding webserver is configured to treat the two hostnames (and possibly others) as identical and serve the same files.
So I guess there is magic. CNAMEs and virtual hosts and HTTP1.1.
Re:Full-Text Search in JavaScript
by don_draper on Sunday October 18, 2015 @07:32AM
(#10407930)
As more data is indexed the system "learns" what makes a relevant search based upon the words in each document. Though I agree the definition of learning in a machine learning context is kind of grey.
Re:Full-Text Search in JavaScript
by amirouche on Sunday October 18, 2015 @08:09AM
(#10407997)
It doesn't learn, it fully supervised and doesn't have feedback loop.
I don't say it's not interesting, it's step forward compared to other articles in my collection [1][2][3] about the same subject allows to dive easily into the metrics and heuristics used in IR.
Re:Full-Text Search in JavaScript
by eivarv on Sunday October 18, 2015 @08:57AM
(#10408096)
I don't know if the definition is really that grey.
Tom Mitchell's popular definition (from his book "Machine Learning"), which is is even quoted in the opening of the Wikipedia article on Machine Learning, comes to mind:
"A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E" [1]
[1]: Mitchell, T. (1997). Machine Learning, McGraw Hill. ISBN 0-07-042807-7, p.2.
It supports multi-field search, stop-word removal, tf-idf - but no Okapi BM25 alas.
http://lunrjs.com/
I actually just used that library in creating a search for the docs site where I work and I have to say it works really well, it's a fully static site (hosted on github pages) and all the search is done in the browser based on an json "index" file that I generate along side the rest of the site. http://docs.exosite.com/
I'll have to take a look and see what @weixsong added, perhaps there are some changes that I can merge upstream.
[1] https://github.com/weixsong/elasticlunr.js/graphs/contributo...
But of course, it's an interesting topic. If you want to learn more, the first edition of the most widely used textbook is free:
http://www-nlp.stanford.edu/IR-book/
"http://nlp.stanford.edu/IR-book/" resolves to the same resource.
Then (in the simplest case) the responding webserver is configured to treat the two hostnames (and possibly others) as identical and serve the same files.
So I guess there is magic. CNAMEs and virtual hosts and HTTP1.1.
I don't say it's not interesting, it's step forward compared to other articles in my collection [1][2][3] about the same subject allows to dive easily into the metrics and heuristics used in IR.
[1] https://www.youtube.com/watch?v=gJwFHSeFg44
[2] http://aakashjapi.com/fuckin-search-engines-how-do-they-work...
[3] https://class.coursera.org/nlp/lecture
Tom Mitchell's popular definition (from his book "Machine Learning"), which is is even quoted in the opening of the Wikipedia article on Machine Learning, comes to mind:
"A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E" [1]
[1]: Mitchell, T. (1997). Machine Learning, McGraw Hill. ISBN 0-07-042807-7, p.2.
[2]: https://en.wikipedia.org/wiki/Machine_learning#Overview