2016-02-03 3 views
0

Я заметил, что разделение терминов поиска по запятой приводит к условию AND: собака, кошка = собака И кошка. Есть ли способ выполнить условие ИЛИ?Algolia OR Условие

Означает ли это, что это будет трюк?

index.search("shirts", { 
    "facets": "*", 
    "hitsPerPage": 10, 
    "facetFilters": [ 
    "size:M", 
    "size:L", 
    ], 
    "maxValuesPerFacet": 100 
}); 

Означает ли это, что это может работать для динамического прохождения значений фасета? В документах написано:

«Вы также можете использовать кодировку строкового массива JSON (например, encodeURIComponent ('[[" category: Book "," category: Movie "]," author: John Doe "]')) «.

"facetFilters": json_encode(["size:M","size:L"]) 

Для тех, кто ищет, как искать, используя условие ИЛИ, они называются «ИЛИ уточнениями» в документах. Вот код, который сработал:

$algolia_config_settings = array("facets" => "*", 
           "facetFilters" => array(array("pa_size:xxs", 
                   "pa_size:5xl")), 
           "hitsPerPage" => 1000); 
+2

в каком контексте вы смысл? нам нужна дополнительная информация. – DevDonkey

+0

Я использую PHP, но он должен работать более или менее так же, как [link] https://www.algolia.com/ site. Вы можете попробовать «быстро, избавиться», и он будет записывать записи как в заголовке. Я хотел бы сделать поиск OR. –

+0

можно ли увидеть код, расположенный за вашей функцией поиска? на данный момент его бит «держит его на экране, и я смотрю» – DevDonkey

ответ

1

Вы можете сделать ИЛИ с фильтрами фассов и фильтрами тегов, используя тот же синтаксис. Вы можете сделать это с помощью круглых скобок в строке или использовать массив, который вы кодируете. См. Документацию REST API для details.

Также верно, что реализация может отличаться, если вы используете клиент API. Вы должны взглянуть на конкретную страницу документации (например, PHP related documentation)

+0

Итак, будет ли что-то подобное этим продуктам извлечения, которые доступны в размерах m OR l? $ index-> ​​setSettings (массив ( "attributesForFaceting" => массив ("pa_sizes"), " фасеты" => Array ("pa_sizes"), " facetFilters" => «pa_sizes: м, pa_sizes: л) " )); –

+0

setSettings предназначен для изменения настроек индекса, а не для выполнения запросов. Это больше понравится: $ index-> ​​search ("query", array ("facetFilters" => "(pa_sizes: m, pa_sizes: l)") – bobylito

+0

Привет, Bobylito, Можете ли вы рассказать мне, как включить фрагмент кода здесь Я бы хотел показать вам, что делает именно то, о чем вы говорите. –

0

Если вы используете Algolia PHP библиотеки вы можете добавить или фильтры, как:

$filters[] = 'option1: value1 OR option2: value2' 

, а затем передать это в качестве второго аргумента к методу поиска.

Заслуга Иман Santoso: https://au.linkedin.com/in/iman-santoso-9a6bb016