You are here:

استفاده از بانکهای اطلاعاتی مبتنی بر گراف در سیستم های پیشنهادیار - یک تجربه

فرستادن به ایمیل چاپ

Tags: Neo4j | NoSql | تجربیات | تخصصی | کاساندرا

یکی از چهار گروه اصلی بانکهای اطلاعاتی NoSQL بانکهای اطلاعاتی مبتنی بر گراف هستند . ساختاری که اطلاعات در آن به صورت گره ویال ذخیره می شوند . معمولاً مثالی که برای کاربردهای این نوع از پایگاه های اطلاعاتی بیان میشود شبکه های اجتماعی مانند فیس بوک و توئیتر است که در آن هر فرد یک گره در نظر گرفته می شود و رابطه دوستی بین افراد یالهای این گراف را تشکیل می دهند. پرس و جو های این بانک اطلاعاتی هم حول مباحثی مانند یافتن نزدیک ترین دوستان، نزدیک ترین فاصله بین دو شخص، دوستان مشترک و مسایلی از این دست است .

برای سایت خبری Republishan دنبال سیستمی برای برچسب زنی اخبار و یافتن اخبار مشابه براساس برچسب های یک خبر بودیم که به ذهنم رسید از این نوع بانک های اطلاعاتی استفاده کنیم . در این کاربرد، هر خبر و هر برچسب یک گره در نظرگرفته می شود و یالها رابطه ایست که بین خبر و برچسب وجود دارد .

ایده این کار را از کتاب NoSQL Distilled آقای مارتین فاولر گرفتم که اصطلاحی را به کار برده است به عنوان Polyglot Persistence یا سیستم های ذخیره سازی چندگانه و منظور از آن هم استفاده از بانکهای اطلاعاتی مختلف در یک سازمان یا وب سایت برای مدیریت جنبه های مختلف و نیازمندیهای متفاوتیست که امروزه با آن مواجهیم . در آن کتاب در توضیح این عبارت، مثالی زده شده است که برای هر قسمت آن از یک پایگاه داده استفاده شده و برای بخش سیستم های پیشنهاد دهنده ، بانکهای مبتنی بر گراف توصیه شده است . ما هم در اینجا قرار است به ازای هر خبری که کاربر می خواند، پیشنهاد اخبار جدید را به او بدهیم ...


از بانک اطلاعاتی Neo4j در کنار کاساندرا که بانک اطلاعاتی اصلی ماست برای این منظور استفاده کردیم و البته هنوز آنرا تست نهایی نکرده ایم اما بررسیهای بنده در زمینه بانکهای اطلاعاتی مبتنی بر گراف که یکی از کاربردهای اصلی آنها سیستم های پیشنهادیار است مرا به نتیجه کار دلگرم کرده است ...

نظرات (1)Add Comment
0
NEO4J
نویسنده نیما, ژوئیه 29, 2014
سلام ، اگه ممکنه بگین چطور میتونم NEO4J رو تو پی اچ پی استفاده کنم

بنايی :
با سلام . تجربه بنده با پایتون بوده و شما می تونی از درایورهای رسمی خود این دیتابیس استفاده کنی
http://www.neo4j.org/develop/php
و یا کتابخانه های کمکی که برای این منظور نوشته شده :
https://github.com/jadell/Neo4jPHP

نظرتان را بنویسید
کوچکتر | بزرگتر

busy
آخرین بروزرسانی ( شنبه ، 20 مهر 1392 ، 19:40 )