Текстовый поиск RethinkDB?

Я пытаюсь изучить некоторые rethinkdb для моего следующего проекта. Мой бэкэнд на Haskell, и переосмысление драйвера db haskell выглядит немного лучше, чем mongodb. Так что я хочу попробовать.

Мой вопрос: как вы выполняете простой текстовый поиск с помощью rethinkdb? Ничего слишком сложного. Только 1_. Я предполагаю, что это должно быть встроено, поскольку даже самое маленькое приложение для блога нуждается в каком-то средстве поиска, верно?

Итак, я ищу эквивалент mongodb:

var search = { "$text": { "$search": "some text" } };

Спасибо.

ИЗМЕНИТЬ

Я не ищу регулярные выражения и функцию соответствия.

  1. Это чрезвычайно медленно для более или менее больших наборов.
  2. У меня нет никакого понятия об индексах.
  3. У него нет понятия стемпинга.

person r.sendecky    schedule 12.05.2015    source источник
comment
Rethinkdb — это не поисковая система. Если вы ищете его, посмотрите на elasticsearch.   -  person Moritz Mahringer    schedule 04.01.2016
comment
Спасибо за ваш ответ, но я искал эквивалентную функцию mongodb (как я четко указал в вопросе). Mongodb тоже не поисковик...   -  person r.sendecky    schedule 04.01.2016


Ответы (1)


С драйвером rethinkdb, задокументированным здесь

run h $ table "table" # R.filter (\row -> match "some text" (row ! "field"))
person AtnNn    schedule 12.05.2015
comment
Спасибо за вашу помощь. Но это не эквивалент текстового поиска mongodb, показанного выше. Я знаю о функции совпадения и регулярном выражении. Смотрите редактирование... - person r.sendecky; 13.05.2015
comment
RethinkDB не имеет текстовых индексов в стиле mongodb. Он имеет мультииндексы, которые можно использовать аналогично split, но которые ограничены 256 значениями в строке. (Обратите внимание, что текстовые индексы, как правило, имеют низкую производительность для больших наборов данных, поскольку для каждого слова требуется одна запись индекса.) Если вам нужны текстовые индексы для вашего варианта использования, mongodb, вероятно, будет лучшим выбором. - person mlucy; 13.05.2015