AyushP123

createfeature

Aug 5th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.17 KB | None | 0 0
  1. //Stop-words
  2. static const char * sw[] = {
  3.     "a", "about", "an", "and", "are", "as", "at",
  4.     "be", "by",
  5.     "en",
  6.     "for", "from",
  7.     "how",
  8.     "i", "in", "is", "it",
  9.     "of", "on", "or",
  10.     "that", "the", "this", "to",
  11.     "was", "what", "when", "where", "which", "who", "why", "will", "with"
  12. };
  13.  
  14. static Xapian::QueryParser
  15. initialise_queryparser(const Xapian::Database & db)
  16. {
  17.     Xapian::SimpleStopper* mystopper;
  18.     mystopper = new Xapian::SimpleStopper(sw, sw + sizeof(sw) / sizeof(sw[0]));
  19.     Xapian::Stem stemmer("english");
  20.     Xapian::QueryParser parser;
  21.     parser.add_prefix("title", "S");
  22.     parser.add_prefix("subject", "S");
  23.     parser.set_database(db);
  24.     parser.set_default_op(Xapian::Query::OP_OR);
  25.     parser.set_stemmer(stemmer);
  26.     parser.set_stemming_strategy(Xapian::QueryParser::STEM_SOME);
  27.     parser.set_stopper(mystopper->release());
  28.     return parser;
  29. }
  30.  
  31.  
  32. DEFINE_TESTCASE(createfeaturevector, generated)
  33. {
  34.     Xapian::FeatureList fl;
  35.     string db_path = get_database_path("apitest_ranker1",
  36.                        db_index_two_documents);
  37.     Xapian::Enquire enquire((Xapian::Database(db_path)));
  38.     Xapian::MSet mset;
  39.     vector<Xapian::FeatureVector> fv =
  40.         fl.create_feature_vectors(mset, Xapian::Query("lions"), (Xapian::Database(db_path)));
  41.     TEST(fv.empty());
  42.     string querystr = "lions";
  43.     Xapian::QueryParser parser = initialise_queryparser( (Xapian::Database(db_path)));
  44.     Xapian::Query query_no_prefix = parser.parse_query(querystr,
  45.                     parser.FLAG_DEFAULT|
  46.                     parser.FLAG_SPELLING_CORRECTION);
  47.     // query with 'title' field as default prefix "S"
  48.     Xapian::Query query_default_prefix = parser.parse_query(querystr,
  49.                      parser.FLAG_DEFAULT|
  50.                      parser.FLAG_SPELLING_CORRECTION,
  51.                      "S");
  52.     Xapian::Query query = Xapian::Query(Xapian::Query::OP_OR, query_no_prefix, query_default_prefix);
  53.     enquire.set_query(query);
  54.     mset = enquire.get_mset(0, 10);
  55.     fv = fl.create_feature_vectors(mset, query,  (Xapian::Database(db_path)));
  56.     for(size_t i =0;i<2;i++)
  57.     {
  58.     for(size_t j =0;j<19;j++)
  59.     {
  60.         printf("%f ",fv[i].get_fvals()[j]);
  61.     }
  62.     printf("\n");
  63.     }
  64.     return true;
  65. }
Add Comment
Please, Sign In to add comment