MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB пълнотекстово търсене + заобиколно решение за частично съвпадение на думи

Езиков корен при търсене на текст използва алгоритъм, за да се опита да свърже думи, извлечени от обща база (напр. "бягане" трябва да съответства на "бягане"). Това е различно от съвпадението на префикса (напр. „синьо“ съответстващо на „боровинка“), което искате да приложите за функция за автоматично довършване.

За да използвате най-ефективно typeahead.js с текстово търсене в MongoDB бих предложил да се съсредоточите върху prefetch поддръжка при предварително изписване:

  • Създайте keywords колекция, която съдържа често срещаните думи (може би с честота на употреба), използвани във вашата колекция. Можете да създадете тази колекция, като изпълните Map/Reduce в цялата колекция, в която имате индекс за търсене на текст, и поддържайте списъка с думи актуален, като използвате периодичен Инкрементална карта/намаляване тъй като се добавят нови документи.

  • Накарайте вашето приложение да генерира JSON документ от keywords колекция с уникалните ключови думи (може би ограничена до „популярни“ ключови думи въз основа на честотата на думата, за да поддържа списъка управляем/уместен).

След това можете да използвате генерираните ключови думи JSON за автоматично довършване от страна на клиента с prefetch на typeahead функция:

$('.mysearch .typeahead').typeahead({
  name: 'mysearch',
  prefetch: '/data/keywords.json'
});

typeahead.js ще кешира prefetch JSON данни в localStorage за търсения от страна на клиента. Когато формулярът за търсене бъде изпратен, вашето приложение може да използва сървърната MongoDB търсене на текст за да върнете пълните резултати в ред на уместност.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да направя заявка за масив от речници в MongoDB?

  2. MongoDB $gte Оператор на конвейер за агрегиране

  3. Грешен брой документи в MongoDB shard клъстер

  4. Инструмент за създаване на визуализация от съществуваща MongoDB

  5. Опцията useFindAndModify не се поддържа