2012-05-03 2 views
0

У меня есть индексы, созданные на таблицах, имеющих данные формы: indexname = 'text' ----> Сегодня отличный день для работы в парке. Теперь я хочу выполнить поиск по индексам, где в тексте появляется только «день» или «запуск».Применить regex к запросу Solr?

Я выполнил запрос, как: д = «текст: (день или запуска *)»? Но этот запрос не возвращает мне никаких результатов indexes.Is это правильный путь или как я могу улучшить мой запрос, применяя регулярное выражение?

+0

Пожалуйста, разместите соответствующие строки из вашей схемы. Непонятно, что регулярное выражение или индекс означают, что вы думаете. – Potatoswatter

+0

AFAIK Regular Expression не используется в поисковых системах – MajidTaheri

+0

Возможный дубликат [Какие функции регулярного выражения поддерживаются Solr edismax?] (Http://stackoverflow.com/questions/9332343/what-regular-expression-features-are-supported -by-solr-edismax) –

ответ

1

Ваш прецедент очень простой и не требует регулярного выражения с помощью Solr. Похоже, у вас просто синтаксическая проблема. q = text: day OR text: run должен делать именно то, что вы ищете.

+0

Кроме того, ваше поле должно быть [типа текста] (http://stackoverflow.com/questions/10355713/facing-issue-while-searhing-on-string-type-field/10362591 # 10362591). – aitchnyu

0

Регулярные и подстановочные знаки медленны в поисковых системах. Вы получите лучшую производительность, предварительно обработав условия с помощью языка.

Вы можете сопоставить «бег» с «бегом» со стеблем, шаг анализа, который сводит различные формы слова к общему стеблю. Когда запрос и индексный термин будут исчерпаны, они будут совпадать.

Вы также должны ознакомиться с обработчиком расширенного поиска (edismax). Это сделает часть работы по превращению «дневного запуска» в поиск отдельных слов и фразы, что-то вроде «day OR run or» day run ». Затем он может дополнительно расширять это по отношению к нескольким полям с разными весами, автоматически.

Смежные вопросы