2017-01-27 1 views
0

Обычно в Whoosh phrase queries для поиска точной математики получены using double quotes. Кажется, что он работает больше всего, но не все время в bw2 (например, see here).Как сделать точный поиск в базе данных

db.search('"{}"'.format("Carbon dioxide, from soil or biomass stock")) 

['Carbon dioxide, from soil or biomass stock' (kilogram, None, ('air','non-urban air or from high stacks')), 
'Carbon dioxide, to soil or biomass stock' (kilogram, None, ('soil', agricultural')), 
'Carbon dioxide, from soil or biomass stock' (kilogram, None, ('air', 'urban air close to ground')), 
'Carbon dioxide, from soil or biomass stock' (kilogram, None, ('air',)), 
'Carbon dioxide, to soil or biomass stock' (kilogram, None, ('soil', 'forestry')), 
'Carbon dioxide, from soil or biomass stock' (kilogram, None, ('air', 'indoor')), 
'Carbon dioxide, from soil or biomass stock' (kilogram, None, ('air', 'lower stratosphere + upper troposphere')), 
'Carbon dioxide, to soil or biomass stock' (kilogram, None, ('soil', 'industrial')), 
'Carbon dioxide, from soil or biomass stock' (kilogram, None, ('air', 'low population density, long-term')), 
'Carbon dioxide, to soil or biomass stock' (kilogram, None, ('soil',))] 

Любая идея о том, как получить точный поиск по типу?

ответ

2

Самый простой способ найти вещи, которые, как представляется, сложны в индексе поиска Whoosh, - это просто пропустить его и отфильтровать необработанные наборы данных, например.

[ds for ds in db if ds['name'].startswith('Carbon dioxide, from soil or biomass stock')] 

Очень легко добавить произвольную сложность, потому что вы просто добавляете функции Python.