• Почему manticore (sphinx) не создаёт локальный индекс?

    @Avreliya777 Автор вопроса
    Дело в том, что у меня все индексы построены со слэшем в конце, и вроде ничего, создавались файлы без имени (т.е. вида: .sph и т.д.)
    Значит так, после того как было прописано всё таки имя после слэша, и о чудо, уж не знаю из-за этого ли, но таблицы сегодня все были созданы! :))) Понаблюдаю, будет ли ещё такая ерунда попадаться, но если нужно было всего лишь прописать имя, то это хорошо :)

    По поводу логов, echo "" > query.log и mv query.log query.log.1 (в виде только move) не помогает т.к. пишет что файл занят другим процессом (службой manticore), если бы не был, можно было бы файл конечно удалить/переименовать и всё:)
    Но выход всё равно был найден через LockHunter. Файл удалён без остановки службы manticore, после создания нового файла и flush logs туда продолжились писаться логи.

    в общем спасибо)

    p.s: и ещё если знаете подскажите как вообще отключить запись в query.log
    пока приходит на ум просто не все писать запросы (а только тормознутые) через query_log_min_msec = 1s,
    через увеличение времени можно свести запись на нет. хотя с такой опцией полное отключение наверное уже и смысла особого не имеет, т.к. файл не будет разрастаться сильно
  • Почему manticore (sphinx) не создаёт локальный индекс?

    @Avreliya777 Автор вопроса
    ManticoreSearch, помню кстати точь в точь такая же проблема была даже с теми же индексами, которые норм создаются, но как только добавлялась в конфиге строка о лемматизации (т.е. lemmatize_ru_all, хотя со стеммингом индекс создавался нормально), то тоже вот такая фигня была, не создавалась таблица (а файлы приобретали приставку .new). От лемматизации поэтому было принято решение отказаться. Но теперь вот такая же проблема уже без лемматизации.
  • Почему manticore (sphinx) не создаёт локальный индекс?

    @Avreliya777 Автор вопроса
    ManticoreSearch, Здравствуйте. Manticore 5.0.2 348514c86@220530 dev
    ОС Windows 10.

    Было бы хорошо чтобы хоть как-то можно было продолжить работу. Напр. построить таблицу по уже вот этим вот созданным файлам (.new.spa и т.д., потому что индекс-то как я понимаю сам создан, т.к. все файлы есть, но из-за того что они как-то именованы с приставкой .new - может из-за этого конфиг не нашёл из чего построить таблицу?)...

    в конфиге примерно так:
    source mysource1
    {
      type             = mysql
      sql_host         = localhost
      sql_user         = root
      sql_pass         = 
      sql_db           = icons
      sql_query_pre	   = SET NAMES utf8
    
      sql_query        = тут сам запрос
      sql_attr_uint    = id
      sql_attr_uint    = idc
      sql_attr_uint    = ids
    }
    
    index myindex1 {
    	index_exact_words = 1
    	expand_keywords = 1
      type   = plain
      source = mysource1
      path   = C:/Manticore/var/data/myindex1/
    }


    ну и вот сами файлы индекса:
    6397ff5932156166406050.png

    Ещё пользуясь случаем хочу спросить, возможно ли как-то не останавливая службу почистить какой-то командой query.log? А то он уже до 3 гб почти разросся... да и вообще, обязательно ли вести лог всех запросов? спасибо.
  • Нужно ли делать rel=nofollow для ссылки-логотипа в шапке, ведущей на главную?

    @Avreliya777 Автор вопроса
    мало ли, может это переспам какой-нибудь будет считаться :) ну раз нет, то хорошо :)
  • Как кодировать ссылки для Sitemap на php?

    @Avreliya777 Автор вопроса
    Спасибо, тогда параметры в rawurlencode() и всё.
  • Как в mysql ускорить запрос с GROUP BY?

    @Avreliya777 Автор вопроса
    Akina,
    Неверно. COUNT(*) считает общее количество записей безотносительно к значениям, а COUNT(column) считает количество NOT NULL pyfxtybq

    Ого, спасибо, надо бы будет запомнить этот важный нюанс. Так, значит когда считаю кол-во строк, значит нужно всё-таки указывать звёздочку.
  • Как в mysql ускорить запрос с GROUP BY?

    @Avreliya777 Автор вопроса
    Rsa97 Вот теперь я всё поняла, спасибо большое! :)
    Буду знать хоть теперь что такое ONLY_FULL_GROUP_BY и нюансы работы с group by.

    Если есть время проверьте пожалуйста моё понимание:

    я правильно понимаю, что для count при выключенном ONLY_FULL_GROUP_BY вообще без разницы что там указано в select в моём примере, я указала GROUP BY tags_rel.id_post, значит в остальных полях будет непонятное значение, в том числе и извлекаемое мною id (SELECT tags_rel.id)? Но нам же в данном случае без разницы какие будут данные? Нам же количество строк нужно найденных посчитать, а не сгруппированные правильно их данные. Я думаю потому count и выполняется быстро, что он не выполняет полноценно группировку (не наслаивает, не пытается агрегатные функции выполнить и т.д.), а просто находит разные id_post (то, что указано в GROUP BY), и считает их кол-во. Так что по сути первый запрос у меня правильный ведь?

    А вот когда уже не COUNT, а второй наш запрос, именно на вытаскивание данных, то тут согласна, нужно аккуратнее с group by. Но в моём случае видимо даже и этот вариант, который у меня изначально был, был допустим, т.к. я группировала по автоинкрементной уникальной колонке ID, то все остальные колонки таблицы posts при объединении просто перекрывали друг друга, но оно и без разницы, ведь если id одинаковый, то и данные одинаковые в колонках, каша была бы только в присоединённых (JOIN tags_rel) таблицах, но я их и не дёргала в select, в select только posts.*
  • Как в mysql ускорить запрос с GROUP BY?

    @Avreliya777 Автор вопроса
    Rsa97 подскажите что у меня не правильно в первом запросе, который с COUNT? Там Akina что-то сказать мне пытается, но мы, очевидно, на разных языках говорим (не вижу что именно неправильно). Там тоже лучше переделать всё как я понимаю по такому же типа, как вот этот ваш запрос?
  • Как в mysql ускорить запрос с GROUP BY?

    @Avreliya777 Автор вопроса
    Rsa97, ааааа, я поняла! если в IN значение повторяется, то оно не берётся, правильно?? :)))
    Сейчас проверила действительно только уникальные id выводятся.
  • Как в mysql ускорить запрос с GROUP BY?

    @Avreliya777 Автор вопроса
    Гениально!!))
    Спасибо большое!
    Добавила к вашему ответу group by (после внутреннего WHERE), и всё заработало очень быстро!
    Я правильно поняла, это потому что группировка это сложный процесс и нужно было выполнять её в маленькой таблице tags_rel, а потом уже готовый результат пихать в posts.
    Было у меня тоже как-то идея такая, но я подумала что нельзя в IN такие большие строки пихать:)) а нет, оказывается целую выборку можно в IN засовывать! :)))

    итоговый запрос получился:
    SELECT *
    FROM `posts`
    WHERE `id` IN
    (
    SELECT `id_post`
    FROM `tags_rel`
    WHERE `id_tag` IN (1,2,3)
    GROUP BY id_post
    ) AND `status` = 1
    LIMIT 0, 50
  • Как в mysql ускорить запрос с GROUP BY?

    @Avreliya777 Автор вопроса
    Akina, Вы про тот который с COUNT? Так он вроде хорошо работает, на него у меня нет жалоб, и результат детерминированный, т.е. ровно тот даёт результат, какой нужно. Количество высчитывает правильно.
    Здесь взяла пример: https://stackoverflow.com/a/19371614/6230467
  • Почему MATCH AGAINST ничего не находит в BOOLEAN MODE?

    @Avreliya777 Автор вопроса
    Ипатьев, Спасибо. По той ссылке я не совсем поняла как пользоваться, видимо базу свою туда загружать как-то надо. Но в целом я уже поняла по ответу Akina, что из-за стоп-слов это всё.
  • Почему MATCH AGAINST ничего не находит в BOOLEAN MODE?

    @Avreliya777 Автор вопроса
    Akina, вооот оно что! спасибо! теперь понятно! это стоп-слова.
    https://mariadb.com/kb/en/full-text-index-stopwords/
    Подскажите ещё такой вопросик, вот там заголовоком InnoDB Stopwords есть небольшой список стоп-слов, и у меня база как раз InnoDB, а не принимает всё равно полный список слов из тех, что находится под заголовком MyISAM Stopwords. Так и должно быть?
  • Как объединить поиск по тегам и названию поста в MySQL?

    @Avreliya777 Автор вопроса
    Спасибо большое! Ну вот по полнотекстовому (не в тегах, в тегах обычный LIKE будет, а вот названиях по неточному совпадению хотелось бы) я как раз пока к manticore присматриваюсь, опенсорсная ветка от сфинкс как я поняла, а сфинксом я как-то много лет назад уже пользовалась.
    Вот собственно говоря наверное там я и столкнусь с проблемой, что теги я одним способом ищу, а названия по полнотексту, и при этом чтобы они не пересекались. Наверное всё же два запроса придётся делать, соединять результаты (в mysql или php) и удалять дубли (в mysql или php, посмотреть что быстрее).
  • Как объединить поиск по тегам и названию поста в MySQL?

    @Avreliya777 Автор вопроса
    mayton2019, на теги 2 таблицы, tags - id, name,
    и tags_posts - id_tag, id_post, т.е. я сначала нахожу совпадение тега в тегс, а потом если есть совпадение, то делаю уже второй запрос на выковыривание постов через tags_posts.
    Но сейчас хочу добавить поиск по названию поста ещё, и как бы это объединить эффективно не знаю
  • Почему не стартует Apache в Xampp после обновления PHP?

    @Avreliya777 Автор вопроса
    AVKor,
    потому что там всё это работает, причём идеально

    Так оно и здесь идеально работает.

    можно было поставить в VurtualBox Debian, поставить туда нужное ПО и вообще забыть про хлам под названием xampp

    И иметь кучу нового хлама в виде VirtualBox и целой ОС в придачу))
    Уж лучше маленькая утилитка xampp, которая в общем-то никак и не вмешивается в работу Apache, PHP и MariaDB, кроме как удержания их в одной директории и предоставления контрольпанельки с кнопками start/stop.

    Не понимаю, почему для Linux-адептов так важно обратить всех в свою веру?
  • Почему не стартует Apache в Xampp после обновления PHP?

    @Avreliya777 Автор вопроса
    Так, понятно. Сейчас узнала свою версию apache:
    C:\xampp\apache\bin>httpd -v
    Server version: Apache/2.4.29 (Win32)
    Apache Lounge VC15 Server built:   Nov  3 2017 10:30:36


    Похоже новый xampp обновляет и apache на x64.
    Поэтому новый апач загружает новый php, и мой старый нет.
    Видимо нужно и apache обновить. Будем пробовать...
  • Почему не стартует Apache в Xampp после обновления PHP?

    @Avreliya777 Автор вопроса
    Наконец-то кто-то перевёл эти кракозябры, спасибо :)
    Дело в том, что в старом конфиге апача (в старом xampp, моём текущем т.е., где php7) в этой строке стоит:
    LoadFile "C:/xampp/php/php7ts.dll"
    А в новом xampp, где уже php8, в конфиге апача указано:
    LoadFile "C:/xampp/php/php8ts.dll"

    Т.е. это не мои настройки даже, я их просто скопировала из нового xampp, после того как перезаписала папку php новой версией.
  • Почему не стартует Apache в Xampp после обновления PHP?

    @Avreliya777 Автор вопроса
    AVKor, надо, с ошибкой не работает.