Плагин wordpress - Relevanssi. Поиск по одному слову

384
02 февраля 2017, 03:33

Установил плагин Relevanssi, работает лучше чем стандартный поиск wordpress, теперь и по категориям искать можно, но вот он почему то не различает подстроки в слове. То есть если я ввожу "Германия" а в записи слово "Германии", то он ничего не найдет, как это можно исправить? смотрел нет ли никаких query_posts, вроде все чисто, даже wp_query нет, что ему тогда может мешать работать?

В настройках самого плагина написано "Точные совпадения проверяют слово целиком, а похожие результаты выводят совпадения в начале или окончании искомых слов. " Если я ввожу начало правильно например "Герм" или окончание "мании" для того, чтобы найти записи со словом "Германии", то плагин их находит, а вот при вводе "Германия" не работает. Может этот плагин вообще для такого типа поиска не предназначен? И есть ли какая-то альтернатива ему, которая сможет искать похожие слова?

Файл serarch.php

<?php
get_header(); ?>
<section id="primary" class="content-area">
    <main id="main" class="site-main" role="main">
        <?php
        if (have_posts()) : ?>
            <header class="page-header">
                <h1 class="page-title">
                    <?php printf(esc_html__('Search Results for: %s', 'tax'), '<span>' . '</span>'); ?>
                </h1>
            </header><!-- .page-header -->
            <?php
            /* Start the Loop */
            while (have_posts()) : the_post();
                /**
                 * Run the loop for the search to output the results.
                 * If you want to overload this in a child theme then include a file
                 * called content-search.php and that will be used instead.
                 */
                get_template_part('template-parts/content', 'search');
            endwhile;
            the_posts_navigation();
        else :
            get_template_part('template-parts/content', 'none');
        endif; ?>
    </main><!-- #main -->
</section><!-- #primary -->
<?php 
get_sidebar();
get_footer();
Answer 1

для того, чтобы найти записи со словом "Германии", то плагин их находит, а вот при вводе "Германия" не работает. Может этот плагин вообще для такого типа поиска не предназначен?

Естественно же - "Германии" и "Германия" разный набор символов. Любой поиск ищет заданные символы в базе и не умеет догадываться о подменах оных.

Интеллектуальный поиск (морфологический - часть такого) - это сложная задача, требующая немалых ресурсов.

И есть ли какая-то альтернатива ему, которая сможет искать похожие слова?

Подключение "поиск по сайту" яндекса или/и гугла. Но найдётся только проиндексированное ими. Либо же подключение своего движка типа сфинкс или использование phpMorphy

Answer 2

Можно попробовать удалять последние 2-3 буквы в словах в поиске. (как это технически реализовать это наверное другой вопрос)

Т.е. будет Герман и эта подстрока будет совпадать и с Германия и Германии и Германию и т.д.

Конечно в некоторых случаях может быть что будут выводиться лишние результаты, но это пожалуй самый простой вариант.

READ ALSO
Github Gist в NetBeans - прямо как в Anroid Studio

Github Gist в NetBeans - прямо как в Anroid Studio

ЗдравствуйтеЯ часто использую функцию создания гистов в Android Studio и хочу иметь такую же возможность и в NetBeans

344
Замена перевода строки на хтмл тег p в wysibb editor

Замена перевода строки на хтмл тег p в wysibb editor

ЗдравствуйтеЗаменяю перевод строки на < /p>< p> как показано в этом решении, но возникает проблема, если в тексте появляются теги < h2>< /h2>, например

389
Не получается создать CRUD (LARAVEL + SLEEPING OWL)

Не получается создать CRUD (LARAVEL + SLEEPING OWL)

Пытаюсь создать простейший CRUD на Laravel 54 + Sleeping owl 4

588
как добавить id в конструктор

как добавить id в конструктор

как можно добавить id в конструктор? html:

336