-
Notifications
You must be signed in to change notification settings - Fork 151
Description
Hi,
First off.. let me say this library is amazing. I spent some time trying to find a good client-side index, and MiniSearch is by far the best I found.
Now that I've buttered you up...
I am implementing a basic document similarity mechanism that just takes the field of an existing document, and re-issues a search with the value that field.
For example:
Imagine a document with the following:
{
"description" : "foo bar baz bazooka"
}
Finding similar items would mean issuing a search like this:
const options = {
fields: ['description'],
combineWith: 'OR'
};
minisearch.search("foo bar baz bazooka", options);
This works, but in my case, the first few terms are more meaningful than the last few. If you imagine the corpus has two other documents:
[{
"description" : "foo bar bosh"
},
{
"description" : "baz bazooka bar"
}]
The second item would (likely) get a higher score
from MiniSearch. In reality (in my case) the first document should be higher.
So.. what I really want is:
minisearch.search("foo^2 bar baz bazooka", options);
The foo^2
applies a boost to that term. Similar to term boosting in Lucene