timo-71

Рейтинг
63
Регистрация
19.09.2018
ArbNet #:

Человек набирает в поиске: мерседес е200

Поисковик определяет направление поиска 

е200 мерседес
('benz_mercedes', 1055.8079999999993)
('mercedes_купить', 227.4048)
('бенц_мерседес', 178.6752)
('класс_мерседес', 157.0176)
('200_класс', 140.77439999999999)
('mercedes_фото', 129.94559999999998)
('mercedes_продажа', 124.5312)
('200_мерседес', 124.41599999999995)
('200_mercedes', 116.12159999999996)
('купить_мерседес', 102.8736)
('200_benz', 81.216)
('200_купить', 81.216)
('s212_w212', 77.75679999999998)
('benz_class', 74.22239999999998)
('мерседес_продажа', 70.38719999999999)
('невысокий_цена', 67.15359999999997)
('200_рестайлинга', 60.48000000000002)
('200_premium', 48.7296)
('mercedes_автомобиль', 43.3152)
('200_4matic', 43.3152)
('c207_s212', 39.48)
('автомобиль_пробег', 38.878399999999985)
('автомобиль_мерседес', 37.9008)
('mercedes_цена', 37.9008)
('iv_класс', 35.71999999999999)
('iv_w212', 35.71999999999999)
('200_c238', 32.486399999999996)
('пробег_продажа', 31.80959999999999)
('auto_продажа', 31.80959999999999)
('авто_купить', 31.80959999999999)
('авто_ру', 31.80959999999999)
('технический_характеристика', 28.27519999999999)
('w213_класс', 28.27519999999999)
('дилер_официальный', 28.27519999999999)
('200_пробег', 27.072)
('auto_mercedes', 27.072)
('s213_w213', 24.740799999999993)
('c238_s213', 24.740799999999993)
('4matic_sport', 24.740799999999993)
богоносец #:
Лучше смотреть стату самих ранжируемых документов.

В итоге так оно и делается, просто поэтапно:

Корпус из сниппетов по запросу камаз (кроме этого отдельно собираются 'title', 'headline', 'hlword'):

('камаз_пао', 87)
('официальный_сайт', 33)
('пао_сайт', 31)
('дилер_официальный', 14)
('камаз_компания', 13)
('автомобиль_грузовой', 12)
('дилер_камаз', 12)
('камаз_мастер', 11)
('обслуживание_сервисный', 9)
('автомобильный_завод', 9)
('российский_федерация', 8)
('запасный_продажа', 8)
('kamaz_камаз', 8)
('информационный_материал', 8)
('комплаенс_контрагент', 8)
('интернет_магазин', 8)
('камаз_купить', 8)
('компания_официальный', 7)
('горячий_линия', 7)

Совместная обработка корпуса сниппетов:= Функция(корпус сниппетов, ключи букварикса, 'title', 'headline', 'hlword')

('камаз_пао', 371.0528)
('камаз_компания', 70.38719999999999)
('kamaz_камаз', 66.35519999999998)
('дилер_камаз', 64.97279999999999)
('камаз_мастер', 59.5584)
('дилер_официальный', 49.48159999999998)
('камаз_купить', 43.3152)
('автомобиль_грузовой', 42.41279999999998)
('двигатель_камаз', 32.486399999999996)
('грузовик_камаз', 32.486399999999996)
('обслуживание_сервисный', 31.80959999999999)
('автомобильный_завод', 31.80959999999999)
('камаз_самосвал', 27.072)
('камаз_тягач', 24.8288)
('5490_камаз', 24.8288)
('автоцентр_камаз', 14.399999999999999)
('камаз_лизинг', 11.64)
('6520_камаз', 11.64)
('автомобиль_спецтехник', 9.0687999999999995)
.....100500 еще....

Дальше gensim lsi по корпусу текстов документов из топа с корректировкой весов лемм задающих скрытые тематики на полученное выше. Но, и приведенного выше, часто достаточно для того, чтобы обвесить документ продвигаемый по запросу "камаз", материалами (статьи, новости, фото, видео, товары) релевантными 

'камаз_пао', 'камаз_компания', 'kamaz_камаз', 'дилер_камаз', 'камаз_мастер', 'дилер_официальный', 'камаз_купить',
'автомобиль_грузовой', 'двигатель_камаз', 'грузовик_камаз', 'обслуживание_сервисный', 'автомобильный_завод',
'камаз_самосвал', 'камаз_тягач', '5490_камаз', 'автоцентр_камаз', 'камаз_лизинг', '6520_камаз', 'автомобиль_спецтехник'

В итоге обвес достаточно тематичный, документ полнее раскрывает тему запроса. 

Anamnado #:
поисковую строку разбиваем на слова

А если там "R0805-1%-100R резисторы"  или даже, страшно подумать, вот так  "R0805", или так "0.125Вт  100 Ом  5% SMD"?

Ну вот из Гугла "Вместе с ... часто ищут"

  • резистор 100 ом 1 вт
  • сопротивление 100 ом
    • резистор 100 ом smd
    • резистор 100 ом 2 вт
    • резистор 100 ом 0 25 вт
    • резистор 100 ом 10 вт
    Так, что у вас не поиск, а фильтр по "типу-наименованию"
    Anamnado #:
    а не как обычно в WP сувать все в одну таблицу, то 10 000 000  товара не такая уж проблема

    10 000 000? Покажете, как это не проблема? 

    Пока, наглядно показано, что для поиска 10 ближайших предложений (по координатам юзера). Наиболее затратно, что объяснимо. 

    await do_geo(request)

    и простой пагинатор:  10 страница (30 на странице)

    _cat = Cat('komplektuyuschie', request)
    cat_listing = await _cat.pages(10, 30)

    на базах разных размеров дает ощутимую разницу в производительности. 

    Для теста использовались:  aiohttp + mongodb. 

    Anamnado #:
    поначалу сайт был для фирм бесплатный. и достаточно было лишь их желание. 

    А как иначе? Т.е,  технически, и 10.000.000 в их базе не предел. Еще намек.

    Простой эксперимент:

    ret = await get_content(request, ret)
    await do_geo(request)    
    ret['GEO']      = request.get('GEO')
    ret['beside']   = request.get('beside')
    _cat = Cat('komplektuyuschie', request)
    cat_listing = await _cat.pages(10, 30)

    В никуда получаем 30 записей с 10 страницы. Результат 3000 запросов с конкурентностью 200

    ab -n 3000 -c 200


    Document Length:        86774 bytes

    Concurrency Level:      200
    Time taken for tests:   71.992 seconds
    Complete requests:      3000
    Failed requests:        0
    Write errors:           0
    Total transferred:      260847000 bytes
    HTML transferred:       260322000 bytes
    Requests per second:    41.67 [#/sec] (mean)
    Time per request:       4799.435 [ms] (mean)
    Time per request:       23.997 [ms] (mean, across all concurrent requests)
    Transfer rate:          3538.38 [Kbytes/sec] received


    Document Length:        86774 bytes

    Concurrency Level:      200
    Time taken for tests:   5.133 seconds
    Complete requests:      3000
    Failed requests:        0
    Write errors:           0
    Total transferred:      260847000 bytes
    HTML transferred:       260322000 bytes
    Requests per second:    584.41 [#/sec] (mean)
    Time per request:       342.224 [ms] (mean)
    Time per request:       1.711 [ms] (mean, across all concurrent requests)
    Transfer rate:          49623.19 [Kbytes/sec] received

    В одном случае база в 8000 товаров, в другом 900000. Даже миллиона нет, но производительность снизилась в 10 раз.

    Anamnado #:
    фирм 100 там есть точно  умножаем

    Умножаем:

    100 * ~10000 = 1.000.000 позиций в каталоге (те кто платит). Вероятно, есть и те кто не платит. Иначе как привлечь, тех кто платит.

    Ну пусть 1.000.000. Что там?  Бегло 161000 документов в гугле. Следовательно, нагрузка от ботов. Вероятно, понятно где сложности. Если нет, то получится, когда 5 фирм все бодро, а когда 50 начнут морду бить.

    богоносец #:
    А вы читали, по какому принципу их отбирают / называют не пассажами, а фрагментами?

    Не суть как называются, вернее я назвал (главным образом по названию в хмл)

    #кусок кода
    if doc.name in ['passages', 'title', 'headline']:
                        hl = doc.find_all('hlword')

    Данные, которые я привел не используются напрямую. А в составе алгоритма, который кроме этих биграмм использует подсветки, ключи из букварикса имеющих вхождение запроса, контента до 40 первых первых документов из топ 100 (обычно 20).  И т.д.

    "top":[{"relevance":"","url":"https://www.ucoz.ru/","domain":"www.ucoz.ru","modtime":"20061111T030000","size":"827","charset":"utf-8","properties":"0ru","mime-type":"text/html"},{"relevance":"","url":"https://skillbox.ru/media/marketing/6_besplatnykh_konstruktorov_saytov/","domain":"skillbox.ru","modtime":"20200626T153303","size":"3487","charset":"utf-8","properties":"0ru","mime-type":"text/html"},{"relevance":"","url":"https://www.internet-technologies.ru/how-to-create-a-website.html","domain":"www.internet-technologies.ru","modtime":"20100402T040000","size":"7064","charset":"utf-8","properties":"0ru","mime-type":"text/html"}

    Фактически, то что выше приведено используется для корректировки веса н-грамм задающих лси тематику из контента документов входящих в топ

    Lazy Badger #:
    а с Миратекстовым "анализом" вообще адЪ

    Жесть. Ни лемматизации, ни удаления стопслов. 

    А по теме - границы сео компоненты движка можно  расширить до неприличия. У меня, например, используется и такое:

    Биграммы по запросу "создание сайта"  из пассажей выдачи топ 100 Яндекс хмл

    ('сайт_создать', 109)
    ('сайт_создание', 81)
    ('конструктор_сайт', 41)
    ('бесплатно_сайт', 36)
    ('нуль_сайт', 19)
    ('ключ_сайт', 16)
    ('сайт_создавать', 15)
    ('бизнес_сайт', 12)
    ('бесплатно_нуль', 12)
    ('сайт_самостоятельно', 11)
    ('продвижение_сайт', 11)
    ('кью_яндекс', 9)
    ('инструкция_пошаговый', 8)
    ('дзный_яндекс', 8)
    ('бесплатный_конструктор', 7)
    ('сайт_собственный', 7)
    ('разработка_сайт', 7)
    ('бесплатно_создать', 7)
    ('сайт_сайт', 7)
    ('бесплатно_конструктор', 6)
    ('сайт_система', 6)
    ('продвижение_создание', 6)
    ('сайт_яндекс', 6)
    ('визитка_сайт', 5)
    ('люба_сайт', 5)
    ('бесплатно_яндекс', 5)
    ('интернет_магазин', 5)
    ('кью_создать', 5)
    ('пошаговый_сайт', 5)
    ('нуль_самостоятельно', 4)
    ('готовый_шаблон', 4)
    ('онлайн_сайт', 4)
    ('простой_шаг', 4)
    ('платформа_сайт', 4)
    ('создание_способ', 4)
    ('инструкция_создание', 4)
    ('готовый_сайт', 4)
    ('сайт_шаблон', 4)
    ('ключ_создание', 4)
    ('разработка_создание', 4)
    ('разный_сайт', 4)
    ('лендинга_магазин', 3)
    ('бесплатно_пошаговый', 3)
    ('инструкция_создать', 3)
    ('нуль_полный', 3)
    ('wix_сайт', 3)
    ('веб_сайт', 3)
    ('собственный_создать', 3)
    ('простой_сайт', 3)
    ('publishing_tilda', 3)
    .... всего 1196 ....
    ('css_html', 1) ('css_движок', 1) ('joomla_wordpress', 1) ('joomla_обзор', 1) ('обзор_популярный', 1) ('онлайн_популярный', 1)

    Про лси и генсим ссылку повторю https://searchengines.guru/ru/forum/1022504

    Вполне возможно использовать для обвеса документа. 

    ArbNet :
    Хочу запрограммировать чтобы движок автоматически подбирал ключевые слова для страницы и тд.

    Как то тоже поднимал такой вопрос тут: https://searchengines.guru/ru/forum/1024069/page3#comment_16254940 , косвенно с этим пересекается такая тема https://searchengines.guru/ru/forum/1022504/page8#comment_16212911

    Dram :
    Syntax error or access violation: 1142 DROP command denied to user 'com'@'localhost' for table 'level1' 

    Все написано же:

    Ошибка синтаксиса или нарушение прав доступа: команда DROP 1142 отклонена пользователю com @ localhost для таблицы level1

    Привилегии юзера сом смотрите

    Всего: 541