Guest User

Untitled

a guest
Jan 24th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. try {
  2. TCHAR* searchString = STRDUP_AtoT(*(*baton->search));
  3. Query* q = QueryParser::parse(searchString, _T(""), &analyzer);
  4. Hits* hits = s.search(q);
  5.  
  6. HandleScope scope;
  7. //_CLDELETE(q);
  8. free(searchString);
  9. // Build the result array
  10. Local<v8::Array> resultArray = v8::Array::New();
  11.  
  12. for (size_t i=0; i < hits->length(); i++) {
  13. Document& doc(hits->doc(i));
  14. // {"id":"ab34", "score":1.0}
  15. Local<Object> resultObject = Object::New();
  16. // TODO: This dup might be a leak
  17.  
  18. DocumentFieldEnumeration* fields = doc.getFields();
  19. while (fields->hasMoreElements()) {
  20. Field* nextField = fields->nextElement();
  21. Local<String> fieldName = _T(nextField->name());
  22. Local<String> fieldValue = _T(nextField->stringValue());
  23. resultObject->Set(fieldName, fieldValue);
  24. }
  25.  
  26. /*
  27. resultObject->Set(String::New("type"), String::New(STRDUP_TtoA(doc.get(_T("_type")))));
  28. if (doc.getField(_T("content")) != NULL) {
  29. resultObject->Set(String::New("content"), String::New(STRDUP_TtoA(doc.get(_T("content")))));
  30. }
  31. */
  32.  
  33. resultObject->Set(String::New("score"), Number::New(hits->score(i)));
  34. resultArray->Set(i, resultObject);
  35. }
  36. baton->results = Persistent<v8::Array>::New(resultArray);
  37. } catch (CLuceneError& E) {
  38. baton->error.assign(E.what());
  39. } catch(...) {
  40. baton->error = "Got an unknown exception";
  41. }
Add Comment
Please, Sign In to add comment