Я знаю, что «не работает» никогда не было хорошим началом, когда я обращался за помощью, но я занимался этим несколько месяцев и практически ничего не получил.
До сих пор я, по крайней мере, определил, что МОГУ работать, чтобы операторы начала / конца поля работали, но ТОЛЬКО когда я вставляю пробел, например:
@gametitle "^diablo$ "
Странно, но возвращается просто игра Diablo
, однако:
@gametitle "^diablo$"
Возвращает ВСЕ игры с Diablo в названии. Теперь это замечательно, я, очевидно, могу положиться на тот факт, что этот лишний пробел применит правильное совпадение названий игр (похоже, он работает и с "^age of empires$ "
).
Однако, когда дело доходит до моего ДРУГОГО поля, то, которое я действительно хочу сделать для этого полного соответствия полей (@console), мне не повезло. Я просто не получаю результатов (если я пытаюсь сделать "^PlayStation$ "
), или же я получаю все результаты с PlayStation в поле консоли (т. Е. PS1 / 2/3 и портативный), когда я * "^PlayStation$"
.
Теперь единственное различие между полями @gametitle
и @console
состоит в том, что поле консоли содержит несколько пустых записей. Я попытался обойти это, выбрав строку «NULL» с оператором IF в MySQL (это мой источник), но без радости. Кроме того, в MySQL поля консоли и названия игры - VARCHAR (255).
Я надеюсь, что у кого-то будет какой-то момент с тем, что я упомянул в отношении дополнительного пространства, заставляющего эту вещь работать, но я не задерживаю дыхание! В любом случае хватит моего пессимизма, с нетерпением жду ваших мыслей.
Я использую PHP API, предоставляемый sphinx, который я расширяю, чтобы внести незначительные изменения. Я запрашиваю экземпляр searchd
, который является Sphinx v1.10-beta. Вот журналы запросов:
[...] 0.024 sec [ext2/1/attr- 7 (0,50)] [application] @gametitle "^age of empires$"
[...] 0.024 sec [ext2/1/attr- 1 (0,50)] [application] @gametitle "^age of empires$ "
Там вы действительно можете увидеть, как добавление пробела сбивает счет записи с 7 до 1, тогда как на самом деле вы должны ожидать, что они оба вернут 1 ...