Xapian - поисковые запросы не получают совпадений, если к каждому слову не добавлено «" » - PullRequest
0 голосов
/ 29 апреля 2019

Используя C ++, мне удалось следовать учебнику по Xapian, найденному здесь.

https://getting -started-with-xapian.readthedocs.io / en / latest / Practical_example / index.html#

Программа индексатора работает так, как я ожидаю, но программа поиска - https://getting -started-with-xapian.readthedocs.io / en / latest / Practical_example / search /building.html - работает только с предупреждением.

Когда, например, я запускаю эквивалент:

python2 code/python/search1.py db Dent watch

Совпадений не найдено, если я вместо этого не напишу следующее:

python2 code/python/search1.py db '"Dent" "watch"'

Что работает так, как я ожидаю.Проблема в том, что я не совсем понимаю, почему это работает (хотя я знаю, что символ «» является каким-то модификатором поискового запроса) и в том, как я должен стремиться подготовить запросы к обработке.

Например,у конструктора класса Xapian::QueryParser есть возможность добавить символы "" для меня?Или я должен предварительно обработать ввод, прежде чем пытаться получить совпадения?

1 Ответ

0 голосов
/ 30 апреля 2019

Для записи, используйте следующие queryParser.parse_query(input, queryParser.FLAG_PHRASE), чтобы исправить возникшую проблему.

...