Теперь в приоритете наиболее короткий адрес.
This commit is contained in:
parent
955c72c01c
commit
c2799674b3
18
README.md
18
README.md
@ -137,20 +137,16 @@ _Внимание_! Только Python 2.7, только PostgreSQL, тольк
|
||||
1. Настроим конфиг, он лежит в `aore/config/__init__.py`, в этом файле можно изменить `.dev` на `.prod`,
|
||||
отредактировать, соотвественно, dev.py или prod.py: прописать параметры доступа к базе и путь,
|
||||
куда будут сохраняться данные Sphinx; по этому пути дополнительно необходимо создать 3 папки: log, run и data
|
||||
|
||||
2. Создадим базу:
|
||||
- из архива `sudo -u phias python manage.py -b create -s /tmp/fias_xml.rar`
|
||||
- из директории `sudo -u phias python manage.py -b create -s /tmp/fias_xml_unpacked`
|
||||
- онлайн, с сервера ФНС `sudo -u phias python manage.py -b create -s http`
|
||||
- из архива `sudo -u phias python manage.py -b create -s /tmp/fias_xml.rar`
|
||||
- из директории `sudo -u phias python manage.py -b create -s /tmp/fias_xml_unpacked`
|
||||
- онлайн, с сервера ФНС `sudo -u phias python manage.py -b create -s http`
|
||||
Также, можно указать конкретную версию ФИАС _только_ при http загрузке, с ключом `--update-version <num>`, где num -
|
||||
номер версии ФИАС, все доступные версии можно получить, выполнив `manage.py -v`.
|
||||
|
||||
3. Проиндексируем Sphinx:
|
||||
- Windows: `python manage.py -c -i C://sphinx//indexer.exe -o C://sphinx//sphinx.conf`
|
||||
- Debian: `sudo python manage.py -c -i indexer -o /usr/local/sphinx/etc/sphinx.conf`
|
||||
|
||||
- Windows: `python manage.py -c -i C://sphinx//indexer.exe -o C://sphinx//sphinx.conf`
|
||||
- Debian: `sudo python manage.py -c -i indexer -o /usr/local/sphinx/etc/sphinx.conf`
|
||||
4. Затем запустим searchd:
|
||||
- Windows: `net start sphinxsearch`, при этом файл настройки должен быть доступен Sphinx'у.
|
||||
- Debian: `sudo searchd --config /usr/local/sphinx/etc/sphinx.conf`
|
||||
|
||||
- Windows: `net start sphinxsearch`, при этом файл настройки должен быть доступен Sphinx'у.
|
||||
- Debian: `sudo searchd --config /usr/local/sphinx/etc/sphinx.conf`
|
||||
5. Настроим WSGI server, я использую nginx + passenger, Вы можете использовать любое приемлемое сочетание.
|
@ -35,17 +35,17 @@ class SphinxSearch:
|
||||
self.client_show.SetLimits(0, self.max_result)
|
||||
self.client_show.SetConnectTimeout(3.0)
|
||||
|
||||
def __configure(self, index_name, word_len=None):
|
||||
def __configure(self, index_name, word_len):
|
||||
self.client_sugg.ResetFilters()
|
||||
if index_name == sphinx_conf.index_sugg and word_len:
|
||||
if index_name == sphinx_conf.index_sugg:
|
||||
self.client_sugg.SetRankingMode(sphinxapi.SPH_RANK_WORDCOUNT)
|
||||
self.client_sugg.SetFilterRange("len", int(word_len) - self.delta_len, int(word_len) + self.delta_len)
|
||||
self.client_sugg.SetSelect("word, len, @weight+{}-abs(len-{}) AS krank".format(self.delta_len, word_len))
|
||||
self.client_sugg.SetSortMode(sphinxapi.SPH_SORT_EXTENDED, "krank DESC")
|
||||
else:
|
||||
self.client_show.SetRankingMode(sphinxapi.SPH_RANK_BM25)
|
||||
#self.client_show.SetSelect("aoid, fullname, @weight AS krank")
|
||||
#self.client_show.SetSortMode(sphinxapi.SPH_SORT_EXTENDED, "krank DESC")
|
||||
self.client_show.SetSelect("aoid, fullname, @weight-abs(wordcount-{}) AS krank".format(word_len))
|
||||
self.client_show.SetSortMode(sphinxapi.SPH_SORT_EXTENDED, "krank DESC")
|
||||
|
||||
def __get_suggest(self, word, rating_limit, count):
|
||||
word_len = str(len(word) / 2)
|
||||
|
@ -10,7 +10,7 @@ source {{index_name}}
|
||||
sql_query = {{!sql_query}}
|
||||
|
||||
sql_field_string = fullname
|
||||
sql_attr_uint = len
|
||||
sql_attr_uint = wordcount
|
||||
sql_attr_string = aoid
|
||||
sql_attr_string = aoguid
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user