MongoDB 模糊查询效率太差,如何提速?
阿神
阿神 2017-04-24 09:09:39
0
3
771

在70W的数据中,执行 'name': /Mamacitas / 需要17.358767秒才完成
数据内容例:

{
  "Attitude_low": NumberInt(0),
  "Comments": "i",
  "file": [
    "mamacitas-7-scene3.avi",
    "mamacitas-7-scene4.avi",
    "mamacitas-7-scene5.avi",
    "mamacitas-7-scene2.avi",
    "mamacitas-7-scene1.avi",
    "14968frontbig.jpg",
    "[000397].gif",
    "mamacitas-7-bonus-scene1.avi",
    "14968backbig.jpg"
  ],
  "Announce": "http://exodus.desync.com/announce",
  "View": NumberInt(0),
  "Hash": "9E3842903C56E8BBC0C7AF7A0A8636590491923C",
  "name": "Mamacitas 7[SILVERDUST]",
  "Encoding": "!",
  "EntryTime": 1403169286.9712,
  "Attitude_top": NumberInt(0),
  "CreatedBy": "ruTorrent (PHP Class - Adrien Gibrat)",
  "CreationDate": NumberInt(1365851919)
}

关于索引部分:

请问我该如何提高匹配速度?

阿神
阿神

闭关修行中......

répondre à tous(3)
刘奇

Les index de type hachage ne sont pas utiles lors de l'utilisation de requêtes floues. Vous devez vraiment vous fier aux moteurs de recherche pour créer spécifiquement des index après la segmentation des mots

La première consiste à utiliser quelque chose comme la recherche élastique et à en créer une dédiée

Vous pouvez également envisager d'utiliser une bibliothèque de segmentation de mots pour segmenter vos champs en mots, puis utiliser mongodb pour créer une collection de segmentations de mots. Vous pouvez utiliser le mécanisme d'indexation par défaut de mongodb

.
Peter_Zhu

Vous pouvez essayer les index de texte MongoDB. Il semble que vous souhaitiez simplement faire correspondre un mot complet, ce qui est le même que le scénario d'application de ce type d'index.

PHPzhong

Vous pouvez utiliser Lucence/Sphinx combiné avec MongoDb pour effectuer des requêtes de recherche. L'efficacité des requêtes Mongodb est en effet relativement faible

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal