mirror of
https://github.com/Hopiu/xapian-haystack.git
synced 2026-05-04 13:34:49 +00:00
Better testing for whitespace in term indexing
This commit is contained in:
parent
962585a40d
commit
41762d7c42
2 changed files with 14 additions and 17 deletions
|
|
@ -398,7 +398,7 @@ class XapianSearchBackendTestCase(TestCase):
|
|||
|
||||
def test_parse_query(self):
|
||||
self.backend.update(self.index, self.sample_objs)
|
||||
self.assertEqual(self.backend.parse_query('indexed').get_description(), 'Xapian::Query((indexed:(pos=1) OR indexed!\n1:(pos=1) OR indexed!\n2:(pos=1) OR indexed!\n3:(pos=1) OR Zindex:(pos=1)))')
|
||||
self.assertEqual(self.backend.parse_query('indexed').get_description(), 'Xapian::Query((indexed:(pos=1) OR Zindex:(pos=1)))')
|
||||
self.assertEqual(self.backend.parse_query('name:david').get_description(), 'Xapian::Query((XNAMEdavid1:(pos=1) OR XNAMEdavid2:(pos=1) OR XNAMEdavid3:(pos=1) OR ZXNAMEdavid:(pos=1)))')
|
||||
self.assertEqual(self.backend.parse_query('name:da*').get_description(), 'Xapian::Query((XNAMEdavid1:(pos=1) OR XNAMEdavid2:(pos=1) OR XNAMEdavid3:(pos=1)))')
|
||||
self.assertEqual(self.backend.parse_query('name:david1..david2').get_description(), 'Xapian::Query(VALUE_RANGE 0 david1 david2)')
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import cPickle as pickle
|
|||
import os
|
||||
import re
|
||||
import shutil
|
||||
import string
|
||||
import sys
|
||||
import warnings
|
||||
|
||||
|
|
@ -214,33 +213,31 @@ class SearchBackend(BaseSearchBackend):
|
|||
if field['type'] == 'text':
|
||||
if field['multi_valued'] == 'false':
|
||||
term = _marshal_term(value)
|
||||
if term:
|
||||
term_generator.index_text(term)
|
||||
term_generator.index_text(term, 1, prefix)
|
||||
if not string.whitespace in term:
|
||||
document.add_term(term)
|
||||
document.add_term(prefix + term)
|
||||
document.add_value(field['column'], _marshal_value(value))
|
||||
term_generator.index_text(term)
|
||||
term_generator.index_text(term, 1, prefix)
|
||||
if len(term.split()) == 1:
|
||||
document.add_term(term)
|
||||
document.add_term(prefix + term)
|
||||
document.add_value(field['column'], _marshal_value(value))
|
||||
else:
|
||||
for term in value:
|
||||
term = _marshal_term(term)
|
||||
if term:
|
||||
term_generator.index_text(term)
|
||||
term_generator.index_text(term, 1, prefix)
|
||||
if not string.whitespace in term:
|
||||
document.add_term(term)
|
||||
document.add_term(prefix + term)
|
||||
term_generator.index_text(term)
|
||||
term_generator.index_text(term, 1, prefix)
|
||||
if len(term.split()) == 1:
|
||||
document.add_term(term)
|
||||
document.add_term(prefix + term)
|
||||
else:
|
||||
if field['multi_valued'] == 'false':
|
||||
term = _marshal_term(value)
|
||||
if term:
|
||||
if len(term.split()) == 1:
|
||||
document.add_term(term)
|
||||
document.add_term(prefix + term)
|
||||
document.add_value(field['column'], _marshal_value(value))
|
||||
else:
|
||||
for term in value:
|
||||
term = _marshal_term(term)
|
||||
if term:
|
||||
if len(term.split()) == 1:
|
||||
document.add_term(term)
|
||||
document.add_term(prefix + term)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue