String PhraseQuery::toString(const String& field) { StringStream buffer; if (this->field != field) buffer << this->field << L":"; buffer << L"\""; Collection<String> pieces(Collection<String>::newInstance(maxPosition + 1)); for (int32_t i = 0; i < terms.size(); ++i) { int32_t pos = positions[i]; String s(pieces[pos]); if (!s.empty()) s += L"|"; s += terms[i]->text(); pieces[pos] = s; } for (int32_t i = 0; i < pieces.size(); ++i) { if (i > 0) buffer << L" "; String s(pieces[i]); buffer << (s.empty() ? L"?" : s); } buffer << L"\""; if (slop != 0) buffer << L"~" << slop; buffer << boostString(); return buffer.str(); }
String FuzzyQuery::toString(const String& field) { StringStream buffer; if (term->field() != field) { buffer << term->field() << L":"; } buffer << term->text() << L"~" << minimumSimilarity << boostString(); return buffer.str(); }
String WildcardQuery::toString(const String& field) { StringStream buffer; if (term->field() != field) { buffer << term->field() << L":"; } buffer << term->text() << boostString(); return buffer.str(); }
String SpanOrQuery::toString(const String& field) { StringStream buffer; buffer << L"SpanOr(["; for (Collection<SpanQueryPtr>::iterator clause = clauses.begin(); clause != clauses.end(); ++clause) { if (clause != clauses.begin()) { buffer << L", "; } buffer << (*clause)->toString(field); } buffer << L"])" << boostString(); return buffer.str(); }
String NumericRangeQuery::toString(const String& field) { StringStream buffer; if (this->field != field) { buffer << this->field << L":"; } buffer << (minInclusive ? L"[" : L"{"); if (VariantUtils::isNull(min)) { buffer << L"*"; } else { buffer << min; } buffer << L" TO "; if (VariantUtils::isNull(max)) { buffer << L"*"; } else { buffer << max; } buffer << (maxInclusive ? L"]" : L"}"); buffer << boostString(); return buffer.str(); }
String SpanNotQuery::toString(const String& field) { StringStream buffer; buffer << L"spanNot(" << include->toString(field) << L", " << exclude->toString(field) << L")"; buffer << boostString(); return buffer.str(); }
String FilteredQuery::toString(const String& field) { StringStream buffer; buffer << L"filtered(" << query->toString(field) << L")->" << filter->toString() << boostString(); return buffer.str(); }