Я пытаюсь выполнить поиск, который проверяет, что каждое слово в строке запроса содержится в определенном элементе. Например, если $query = "Sports With Stripes"
, то конкретный элемент должен содержать все три слова (в любом порядке, так что это не словосочетание).
Чтобы ограничить поиск элементом, у меня есть следующее ограничение:
<constraint name="inelement">
<word>
<element ns="" name="myElement"/>
<term-option>case-insensitive</term-option>
</word>
</constraint>
Это кажется нормальным, но я борюсь, когда дело доходит до того, что нужно добавить в search:search
. Я сначала попробовал это:
search:search('inelement:spots with stripes', $options, 1, 25)
Это не сработало, так как просто ограничивает "spots"
моим элементом.
Затем я попробовал следующее, что дает мне нужные мне результаты, но мне было интересно, является ли это единственным способом добиться этого или есть другой способ, например, использование оператора между моими условиями поиска.
search:search('inelement:spots inelement:with inelement:stripes', $options, 1, 25)
Есть ли способ лучше? Или мне нужно вручную проанализировать мою строку запроса, чтобы разделить их на отдельные слова, прежде чем добавлять ограничение в мой search:search
?