@mschoch: Hello! I'm new to Bleve and excited to see an easy-to-use text indexing and search library on Golang. I am facing some problem getting a partial phrase match to work. Let's say I have this text string index "Harry Potter and the Cursed Child". When i lookup for "Harry P", I want to be able to match the above document.
I am using a custom analyzer with a whitespace tokenizer and to_lower token filter.
I tried the following:
query := bleve.NewBooleanQuery()
While this matches "Harry Potter and the Cursed Child", it also matches "Prince Harry" (Order of the word is not maintained).
I am having some performance problems with a large index, which consists of 4 million items.
We are using the RocksDB backend, and the index weighs about 6Gb on disk.
A simple MatchAll search takes about a minute - most of which consists of iterating through rocksdb records in CGO.
This takes about a minute, by which time our GUI times out.
We can limit the time the search takes by calling idx.SearchInContext, with a context with an appropriate timeout, but in this case the search rerturns a nil result.
What would be great for us is if there was a way for Bleve to give us "best effort" results within a deadline.
Or alternatively for Bleve to return results as it collects them, rather than computing everything first, and then giving us the results.
We basically want to show our users something in the GUI quickly, even if the result may need revising once more data is collected.
Is there any way I can do this in bleve?
MakeTopNDocumentMatchHandlerbut you can (and need to) write your own.
I tried the idea of buckets, and it gives a 100x speedup, even when I need to combine tens of buckets to express my query.
This leads to another question. When a user at a GUI does a search, they (eventually) get a page of results.
When they scroll to the next page, bleve appears to perform the entire search from scratch.
Is there any way to get bleve to cache the results?
@mschoch Hello Marty,
Bleve is a fantastic search library. Kudos to you and all the contributors.
I have a use-case that I want to use bleve for. I have a list of objects which I want to index but don't want the index data store files to be saved on server instance. Do we have any cloud support available for bleve? Or can we convert the data store files into a serialized form to save it on cloud or S3 and fetch them before use?