vsm :: StringIndex :: defaultinit
# A VSM index to store strings
class StringIndex
super VSMIndex
# Index a new Document from `title`, `uri` and string `string`.
#
# Return the Document created.
#
# See `index_document`.
fun index_string(title, uri, string: String, auto_update: nullable Bool): DOC do
var vector = parse_string(string)
var doc = new Document(title, uri, vector)
index_document(doc, auto_update)
return doc
end
# Match the `query` string against all indexed documents
#
# See `match_vector`.
fun match_string(query: String): Array[IndexMatch[DOC]] do
var vector = parse_string(query)
var doc = new Document("", "", vector)
return match_vector(doc.terms_frequency)
end
# Parse the `string` as a Vector
#
# Returns a vector containing the terms of `string`.
fun parse_string(string: String): Vector do
var reader = new StringReader(string)
var vector = new Vector
loop
var token = reader.read_word
if token == "" then break
vector.inc(token)
end
return vector
end
end
lib/vsm/vsm.nit:215,1--253,3