mirror of
				https://github.com/ae-utbm/sith.git
				synced 2025-10-31 00:53:08 +00:00 
			
		
		
		
	Update Haystack indexer to use Xapian
This commit is contained in:
		
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -10,6 +10,6 @@ doc/html | |||||||
| data/ | data/ | ||||||
| /static/ | /static/ | ||||||
| sith/settings_custom.py | sith/settings_custom.py | ||||||
| sith/whoosh_index/ | sith/search_indexes/ | ||||||
| .coverage | .coverage | ||||||
| coverage_report/ | coverage_report/ | ||||||
|   | |||||||
| @@ -5,7 +5,10 @@ test: | |||||||
|   stage: test |   stage: test | ||||||
|   script: |   script: | ||||||
|   - apt-get update |   - apt-get update | ||||||
|   - apt-get install -y gettext |   - apt-get install -y gettext python3-xapian | ||||||
|  |   - pushd /usr/lib/python3/dist-packages/xapian && ln -s _xapian* _xapian.so && popd | ||||||
|  |   - export PYTHONPATH="/usr/lib/python3/dist-packages:$PYTHONPATH" | ||||||
|  |   - python -c 'import xapian' # Fail immediately if there is a problem with xapian | ||||||
|   - pip install -r requirements.txt |   - pip install -r requirements.txt | ||||||
|   - pip install coverage |   - pip install coverage | ||||||
|   - ./manage.py compilemessages |   - ./manage.py compilemessages | ||||||
|   | |||||||
| @@ -30,14 +30,14 @@ generate a complete HTML documentation that will be available in the *./doc/html | |||||||
| ### Dependencies: | ### Dependencies: | ||||||
| See requirements.txt | See requirements.txt | ||||||
|  |  | ||||||
| You may need to install some dev libraries like `libmysqlclient-dev`, `libssl-dev`, `libjpeg-dev`, or `zlib1g-dev` to install all the | You may need to install some dev libraries like `libmysqlclient-dev`, `libssl-dev`, `libjpeg-dev`, `python3-xapian`, or `zlib1g-dev` to install all the | ||||||
| requiered dependancies with pip. You may also need `mysql-client`. Don't also forget `python3-dev` if you don't have it | requiered dependancies with pip. You may also need `mysql-client`. Don't also forget `python3-dev` if you don't have it | ||||||
| already. | already. | ||||||
|  |  | ||||||
| You can check all of them with: | You can check all of them with: | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| sudo apt install libmysqlclient-dev libssl-dev libjpeg-dev zlib1g-dev python3-dev libffi-dev python3-dev libgraphviz-dev pkg-config | sudo apt install libmysqlclient-dev libssl-dev libjpeg-dev zlib1g-dev python3-dev libffi-dev python3-dev libgraphviz-dev pkg-config python3-xapian | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| The development is done with sqlite, but it is advised to set a more robust DBMS for production (Postgresql for example) | The development is done with sqlite, but it is advised to set a more robust DBMS for production (Postgresql for example) | ||||||
|   | |||||||
| @@ -71,12 +71,7 @@ def notification(request, notif_id): | |||||||
|  |  | ||||||
|  |  | ||||||
| def search_user(query, as_json=False): | def search_user(query, as_json=False): | ||||||
|     res = ( |     res = SearchQuerySet().models(User).filter_or(text__contains=query)[:20] | ||||||
|         SearchQuerySet() |  | ||||||
|         .models(User) |  | ||||||
|         .filter(text=query) |  | ||||||
|         .filter_or(text__contains=query)[:20] |  | ||||||
|     ) |  | ||||||
|     return [r.object for r in res] |     return [r.object for r in res] | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ phonenumbers | |||||||
| django-ajax-selects | django-ajax-selects | ||||||
| reportlab | reportlab | ||||||
| django-haystack | django-haystack | ||||||
| whoosh | xapian-haystack | ||||||
| django-debug-toolbar | django-debug-toolbar | ||||||
| libsass | libsass | ||||||
| django-ordered-model | django-ordered-model | ||||||
|   | |||||||
| @@ -184,8 +184,9 @@ TEMPLATES = [ | |||||||
|  |  | ||||||
| HAYSTACK_CONNECTIONS = { | HAYSTACK_CONNECTIONS = { | ||||||
|     "default": { |     "default": { | ||||||
|         "ENGINE": "haystack.backends.whoosh_backend.WhooshEngine", |         "ENGINE": "xapian_backend.XapianEngine", | ||||||
|         "PATH": os.path.join(os.path.dirname(__file__), "whoosh_index"), |         "PATH": os.path.join(os.path.dirname(__file__), "search_indexes", "xapian"), | ||||||
|  |         "INCLUDE_SPELLING": True, | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user