/*
* call-seq:
* analyzer.token_stream(field_name, input) -> token_stream
*
* Create a new TokenStream to tokenize +input+. The TokenStream created will
* also depend on the +field_name+ in the case of the PerFieldAnalyzer.
*
* field_name:: name of the field to be tokenized
* input:: data from the field to be tokenized
*/
static VALUE
frt_pfa_analyzer_token_stream(VALUE self, VALUE rfield, VALUE rstring)
{
Analyzer *pfa, *a;
char *field = frt_field(rfield);
GET_A(pfa, self);
StringValue(rstring);
a = (Analyzer *)h_get(PFA(pfa)->dict, field);
if (a == NULL) {
a = PFA(pfa)->default_a;
}
if (a->get_ts == cwa_get_ts) {
return rb_funcall(CWA(a)->ranalyzer, id_token_stream, 2,
ID2SYM(rb_intern(field)), rb_str_new2(rs2s(rstring)));
}
else {
return get_rb_ts_from_a(a, rfield, rstring);
}
}