Интеллектуальный поиск в DataTables - не работает должным образом - PullRequest
0 голосов
/ 24 апреля 2018

В документации для функции search () указана функциональность:

Совпадение слов не по порядку.Например, если вы ищете Аллан Файф, он будет соответствовать строке, содержащей слова Аллан и Файф, независимо от порядка или позиции, в которой они появляются в таблице.

Однако я не думаю, что этодело.Если вы будете искать «главный младший» (без скобок) в этом примере https://datatables.net/examples/api/regex.html, вы ожидаете, что будут возвращены все результаты, содержащие «главный» или «младший», но API, скорее всего, использует AND, а не OR.

Я пытаюсь создать раскрывающийся список с множественным выбором, чтобы отфильтровать таблицу, но мне нужно иметь возможность выбрать более одного параметра.Есть ли способ сообщить нам API, а не AND, или он недоступен?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Я думаю, что вы неправильно прочитали оригинальный текст, который вы цитировали - «Например, если вы ищете Аллана Файфа, он будет соответствовать строке, содержащей слова Аллан и Файф».Обратите внимание, на нем написано «ряд», который содержит слова Аллан и Файф.В вашем примере, "главный младший", нет ни одной строки, содержащей оба этих слова.

Если вы хотите, чтобы какая-либо строка содержала «начальник» или «младший», введите «(младший | начальник)», отметьте «Рассматривать как регулярное выражение» и снимите флажок «Использовать интеллектуальный поиск».

0 голосов
/ 24 апреля 2018

Я думаю, что документация DataTables для функции поиска правильная, но не очень понятная:

"Умный" поиск слов не по порядку делает именно это, а не / либоили поиск.

Например, если вы выполняете поиск в столбце «Положение» таблицы этого примера, вы получаете те же строки, независимо от того, ищите ли вы Chief Officer или Officer Chief.

Но вы делаетене получить никаких строк при поиске в столбце Имя для Airi Ramos (имя в строке 1 и фамилия в строке 2).

Для этого вы можете дополнительно включить регулярное выражениеи искать Airi.*|.*Ramos Как видите, позиция сейчас важна.Чтобы получить вторую строку, вы должны разрешить любое количество символов до Ramos (однако .* после Airi не требуется, что немного противоречиво в моей книге).

ЕслиВы отключаете интеллектуальный поиск и переключаетесь исключительно на регулярные выражения. Вы получаете поведение, которое соответствует вашим ожиданиям: (A | B) соответствует всем строкам, столбец поиска которых содержит A или B - независимо от позиции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...