Subversion Repositories SmartDukaan

Rev

Rev 4198 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4198 Rev 5291
Line 62... Line 62...
62
            else:
62
            else:
63
                query_str += " %s %s)" % (query_model_number, query_synonyms)
63
                query_str += " %s %s)" % (query_model_number, query_synonyms)
64
        else:
64
        else:
65
            query_str += " %s)" % query_synonyms
65
            query_str += " %s)" % query_synonyms
66
        
66
        
67
        print query_str
-
 
68
#        query = QueryParser(Version.LUCENE_30, "name", analyzer).parse(user_query)
67
#        query = QueryParser(Version.LUCENE_30, "name", analyzer).parse(user_query)
69
        qp = MultiFieldQueryParser(Version.LUCENE_30, ["name", "brand"], self.analyzer)
68
        qp = MultiFieldQueryParser(Version.LUCENE_30, ["name", "brand"], self.analyzer)
70
        query = qp.parse(qp, query_str)
69
        query = qp.parse(qp, query_str)
71
        hits = self.searcher.search(query, self.MAX_RESULTS)
70
        hits = self.searcher.search(query, self.MAX_RESULTS)
72
 
-
 
73
#        print "Found %d document(s) that matched query '%s':" % (hits.totalHits, query)
71
        print "Found %d document(s) that matched query '%s':" % (hits.totalHits, query_str)
74
        
72
        
75
        phones = []
73
        phones = []
76
        
74
        
77
        for hit in hits.scoreDocs:
75
        for hit in hits.scoreDocs:
78
            doc = self.searcher.doc(hit.doc)
76
            doc = self.searcher.doc(hit.doc)
79
            phones.append({
77
            phones.append({
80
                           "name": str(doc.get("name")),
78
                    'name': str(doc.get("name")),
81
                           "price": str(doc.get("price")),
79
                    'price': str(doc.get("price")),
82
                           'score': hit.score,
80
                    'score': hit.score,
83
                           'in_stock': str(doc.get("in_stock")),
81
                    'in_stock': str(doc.get("in_stock")),
84
                           'url': str(doc.get("url")),
82
                    'url': str(doc.get("url")),
85
                           'source': str(doc.get("source"))
83
                    'source': str(doc.get("source"))
86
                           })
84
                })
-
 
85
        print phones
87
        return phones
86
        return phones
88
 
87
 
89
    def retrieveForQuery(self, query_str):
88
    def retrieveForQuery(self, query_str):
90
        qp = MultiFieldQueryParser(Version.LUCENE_30, ["name", "brand"], self.analyzer)
89
        qp = MultiFieldQueryParser(Version.LUCENE_30, ["name", "brand"], self.analyzer)
91
        query = qp.parse(qp, query_str)
90
        query = qp.parse(qp, query_str)
Line 108... Line 107...
108
        return phones
107
        return phones
109
 
108
 
110
if __name__ == "__main__":
109
if __name__ == "__main__":
111
    retriever = Retriever()
110
    retriever = Retriever()
112
#    print retriever.retrieve(model_number="E2230", model_name = "Hero", brand="Samsung")
111
#    print retriever.retrieve(model_number="E2230", model_name = "Hero", brand="Samsung")
113
    docs = retriever.retrieveForQuery('brand:Karbonn AND (Disney OR KD OR 100 )')
112
    docs = retriever.retrieveForQuery('brand:Spice AND (M-6868 OR M6868 OR (M AND 6868) )')
114
    print len(docs)
113
    print len(docs)
115
    print docs
114
    print docs
116
    #    print phone
115
    #    print phone
117
    '''
116
    '''
118
    catalog_client = CatalogClient().get_client()
117
    catalog_client = CatalogClient().get_client()