Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- try {
- TCHAR* searchString = STRDUP_AtoT(*(*baton->search));
- Query* q = QueryParser::parse(searchString, _T(""), &analyzer);
- Hits* hits = s.search(q);
- HandleScope scope;
- //_CLDELETE(q);
- free(searchString);
- // Build the result array
- Local<v8::Array> resultArray = v8::Array::New();
- for (size_t i=0; i < hits->length(); i++) {
- Document& doc(hits->doc(i));
- // {"id":"ab34", "score":1.0}
- Local<Object> resultObject = Object::New();
- // TODO: This dup might be a leak
- DocumentFieldEnumeration* fields = doc.getFields();
- while (fields->hasMoreElements()) {
- Field* nextField = fields->nextElement();
- Local<String> fieldName = _T(nextField->name());
- Local<String> fieldValue = _T(nextField->stringValue());
- resultObject->Set(fieldName, fieldValue);
- }
- /*
- resultObject->Set(String::New("type"), String::New(STRDUP_TtoA(doc.get(_T("_type")))));
- if (doc.getField(_T("content")) != NULL) {
- resultObject->Set(String::New("content"), String::New(STRDUP_TtoA(doc.get(_T("content")))));
- }
- */
- resultObject->Set(String::New("score"), Number::New(hits->score(i)));
- resultArray->Set(i, resultObject);
- }
- baton->results = Persistent<v8::Array>::New(resultArray);
- } catch (CLuceneError& E) {
- baton->error.assign(E.what());
- } catch(...) {
- baton->error = "Got an unknown exception";
- }
Add Comment
Please, Sign In to add comment