Как искать по части синонима

У меня есть products индекс с отображением

"synonym" : {
    "type" : "synonym",
    "synonyms" : [
        "netbook => laptop"
    ]
}

Я хочу искать свои продукты по запросу "lapt*" или "netb*"

2 ответа

Решение

Если поиск по lapt* работает, но не netb* тогда вам нужно изменить свой фильтр синонимов на этот (т.е. заменить => через запятую):

"synonym" : {
    "type" : "synonym",
    "synonyms" : [
        "netbook, laptop"
    ]
}

С помощью => заменяет netbook от laptopи, следовательно, индексируется только последний. Используя запятую, мы проиндексируем обаnetbook а также laptop и позволяют искать префиксы с обоими netb* а также lapt*

Похоже, вы ищете автозаполнение, и один из способов реализации уже упоминается @val в комментарии, но вам предлагается пройти через этот поток, чтобы понять различные функциональные и нефункциональные требования.

Также в этом блоге рассматриваются различные способы реализации частичного поиска с различными компромиссами.

Другие вопросы по тегам