Я получаю неожиданно противоречивые score
значения в моих поисках FULLTEXT
в MySQL.
Вот мой запрос:
SELECT id, MATCH(description) AGAINST ('$query' IN BOOLEAN MODE) AS score FROM product ORDER BY score DESC
Чтобы уточнить: у меня есть скрипт на Python, которыйсначала заполняет мою базу данных, затем запускает другие запросы MySQL (например, MATCH() AGAINST
выше), все путем выполнения .php
веб-страниц, содержащих MySQL (то есть insert.php
, delete.php
, search.php
).(Идея моего профессора.) Запрос MySQL выше дает одно и то же значение score
каждый раз, когда я запускаю его через MySQL Shell или PHPMyAdmin, но изменяется, когда запрос выполняется через скрипт Python.
Поэтому яхотелось бы видеть переменные, входящие в операцию MATCH() AGAINST
(см. «Как рассчитывается релевантность» здесь: https://dev.mysql.com/doc/refman/8.0/en/fulltext-boolean.html), чтобы увидеть, какие переменные вызывает мой Python-скрипт, в надежде определить, почемумое значение score
изменяется каждый раз, когда я запускаю скрипт
Шаг 1 - скрипт Python удаляет содержимое базы данных, вызывая delete.php
для каждой таблицы в базе данных :
x.x.x.x/delete.php?table=product&conditions=id>='0'
x.x.x.x/delete.php?table=customer&conditions=id>='0'
и т. Д. *
Шаг 2 - Python-скрипт вставляет product
записей таблицы, вызывая insert.php
и вставка name
и description
:
x.x.x.x/insert.php?table=product&columns=name,description&values='V5','This bottle of shampoo is heftier than the other brands.'
и т.д ...
Шаг 3 - Python-скрипт запускает FULLTEXT
поиск в столбце description
таблицы products
с помощью MATCH() AGAINST
, вызвав search.php
:
x.x.x.x/search.php&query=bottle
(search.php
затем запускает MySQL-запрос, показанный в начале этого поста)