Resin Versions Save

Vector space search engine. Available as a HTTP service or as an embedded library.

v0.4.0.6

3 years ago
  • improved documentation
  • cleaned-up markup
  • improved graph building API by applying DDD (graph builder extension methods)

v0.4.0.5

3 years ago

The Resin libraries are now available as nuget packages: https://www.nuget.org/packages/Resin.Search/

Multi-collection querying has been temporarily disabled because of large refactorings having been applied to the read pipeline. This feature will re-appear soon.

Indexing and querying performance improvements.

v0.33

4 years ago

JSON query language!

To see the query language in action, let's try to separate everything that is rotten about Sylvester Stallone's career from everything that is brilliant.

{
	"and":
	{
		"collection": "film,music",
		"title": "rocky eye of the tiger",
		"or":
		{
			"title": "rambo",
			"or": 
			{
				"title": "cobra"
				"or":
				{
					"cast": "antonio banderas"
				}			
			}	
		},
		"and":
		{
			"year": 1980,
			"operator": "gt"
		},
		"not":
		{
			"title": "first blood"
		}
	}
}

*) gt/lt not yet implemented.

Grammar

  • Three reserved words define the types of set operations we can perform: "and", "or", "not".

  • Each operation can have three child operations, one for each type.

  • The "collection" field name is a reserved word. You must define one or more comma-separated collections for each set operation. If you ommit the collection field from a child operation, once the query is evalatuated, the value of the parent's collection field will be used to identify the data. The collection field should never be empty, but you may ommit it entirely from all but the root operation.

  • A term is a key/value pair, where the key is not a reserved word. You must define no more than one term per operation. The value of the term can be a number, date or a string of words, e.g. a phrase or a bag of keywords.

  • "operator" is a reserved word, "gt" and "lt" are its options representing greater or less than. They are used to decorate a term.

Media types

The result set will be serialized by the back-end according to the "Accept" header of your HTTP request. However, currently, Resin has only support for the "application/json" media type.