Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Silbe <sascha@silbe.org>2009-07-19 11:40:32 (GMT)
committer Sascha Silbe <sascha@silbe.org>2009-07-19 11:40:32 (GMT)
commit3cee29ab3d28f19598d56deae1f80492cd22f044 (patch)
treebf22c4c5c69fc071ce3c4cf2b8d0ad8e7291a128
parentb1d504ccc5a27d2a7b316ef31cf8bfc6e8f30681 (diff)
add support for prefixes in Xapian queries
-rw-r--r--src/carquinyol/indexstore.py39
1 files changed, 22 insertions, 17 deletions
diff --git a/src/carquinyol/indexstore.py b/src/carquinyol/indexstore.py
index 8c3980f..1c1a2a2 100644
--- a/src/carquinyol/indexstore.py
+++ b/src/carquinyol/indexstore.py
@@ -201,28 +201,33 @@ class IndexStore(object):
self._queryValueMap[m_name], str(m_value), str(m_value))
+ def _parse_query_xapian(self, query_str) :
+ # TODO: (re)use long-living instance of QueryParser
+ query_parser = QueryParser()
+ query_parser.set_database(self._database)
+ #query_parser.set_default_op(Query.OP_AND)
+
+ # TODO: we should do stemming, but in which language?
+ #query_parser.set_stemmer(_xapian.Stem(lang))
+ #query_parser.set_stemming_strategy(qp.STEM_SOME)
+
+ for (m_name, prefix) in self._queryTermMap.items() :
+ query_parser.add_prefix(m_name, prefix)
+
+ return query_parser.parse_query(
+ query_str,
+ QueryParser.FLAG_PHRASE |
+ QueryParser.FLAG_BOOLEAN |
+ QueryParser.FLAG_LOVEHATE |
+ QueryParser.FLAG_WILDCARD,
+ '')
+
def _parse_query(self, query_dict, query_str):
logging.debug('_parse_query %r' % query_dict)
queries = []
if query_str:
- query_parser = QueryParser()
- query_parser.set_database(self._database)
- #query_parser.set_default_op(Query.OP_AND)
-
- # TODO: we should do stemming, but in which language?
- #query_parser.set_stemmer(_xapian.Stem(lang))
- #query_parser.set_stemming_strategy(qp.STEM_SOME)
-
- query = query_parser.parse_query(
- query_str,
- QueryParser.FLAG_PHRASE |
- QueryParser.FLAG_BOOLEAN |
- QueryParser.FLAG_LOVEHATE |
- QueryParser.FLAG_WILDCARD,
- '')
-
- queries.append(query)
+ queries.append(self._parse_query_xapian(query_str))
# construct queries for term-stored metadata
queries += [