View Full Version : ایندکسینگ صدا ، تصویر و متن
انیشتین
چهارشنبه 19 بهمن 1390, 11:22 صبح
با سلام..
میخواهیم تعدادی فیلم و موسیقی رو به همرا زیر نویس ذخیره کنیم ، به شکلی که از روی محتوی زیر نویس بتونیم به فیلم یا موزیک مورد نظر دسترسی داشته باشیم ، دو تا سوال داشتم که ممنون میشم دوستان راهنمایی کنند:
1- مناسب تر این هست که داده هامون رو داخل یک بانک اس کیو ال ذخیره کنم یا به شکل مستقل بر روی یک درایو و داخل پوشه ای خاص؟
سوال مهم تر:
2-چه در داخل دیتا بیس و چه بر روی هارد و داخل پوشه ای با آدرس معلوم چطور میتونم محتوای یک فایل متنی رو جستجو کنم؟
پیشاپیش از راهنمای دوستان ممنونم....
baktash.n81@gmail.com
چهارشنبه 19 بهمن 1390, 14:34 عصر
سلام
اگه فایل متنی رو بیرون DataBase نگه داری برای جستجو در داخل متنش باید متن رو تو DataBase نگهداری ... وقتی داری فایل رو رو درایو ذخیره کنی متنش رو بریزی تو Database
در خصوص دسترسی از روی محتوا به فیلم یا موزیک ... درست متوجه نشدم یعنی چی ... یعنی یه دیالوگ رو انتخاب کنی بعد بره همونجای فیلم رو نشون بده ؟؟ اگه اینطوریه که باید یه جدول داشته باشی که بگه این زیر نویس ماله این دقیقه فیلم هست ( که البته خود زیر نویس ها دارند) بعد می تونی فیلم رو لود کنی و بری به اون دقیق که می خوای ...
در مورد اینکه کدوم بهتره ... واقعا بستگی به کاربریت داره ... یکی از مشکلاتی که نگهداری فابل تو DB داره Backup گرفتن هست ... ولی به جاش مطمعنی که فایلهات همیشه سرجاشون هستن ... بیرون نگهداشتن فایلها هم مشکلات خودشو داره ... سینک کردن آدرسی که تو DB میذاری با آدرس واقعی و ...
mosyhey
چهارشنبه 19 بهمن 1390, 15:38 عصر
خیلی فکر خوب و جالبی کرده اید.
دقیق نمی دانم چه در نظرتان است، اما به نظر من هر فایلی مثل موسیقی یا فیلم را در داخل پوشه ای در هاست بگذارید ولی یک رکورد هم برای آن در دیتابیس ایجاد کنید. این رکورد می تواند فیلد هایی داشته باشد مانند: عنوان، نوع مدیا، دسته، توضیحات، زیرنویس و .... و آدرس فایل روی هاست.
این کار بهینه است چرا که جای فایل در پوشه است و هنگام دانلود و آپلود فشاری به دیتابیس نمی آید و دوم اینکه جای متن هایی که مخصوصاً قرار است در آنها جستجو هم بشود در دیتابیس است و این متن ها به راحتی قابل جستجو و ویرایش و بروز رسانی هستند.
اگر کاربر فیلم را قرار است دانلود کند از هاست دانلود کند و زیرنویس را هم از دیتابیس برایش بسازید تا دانلود کند.
in_chand_nafar
چهارشنبه 19 بهمن 1390, 21:28 عصر
دوست عزيز سلام
در SQL 2008 شما مي توانيد از نوع داده Varbinary(max) جهت ذخيره كردن متن فيلم ها استفاده كنيد كافي كه زير نويس هايي كه با نرم افزارهاي مشهور توليد زير نويس ايجاد كرديد داخل اين نوع داده ذخيره كنيد و بعد با استفاده از FullText ايندكس ، ايندكسي به ازاي فيلد مورد نظر ايجاد كنيد و بعد عمليات جستجو را با استفاده از توابع مربوط به اين كار در SQL انجام دهيد
پس به طور خلاصه اگر مي خواهيد همچين كار بكنيد
1- در يك فيلد از نوع Varbinary(max) متن زير نويس ها را ذخيره كنيد (متن زير نويس هر فيلم در يك فايل جداگانه ذخيره شده و اين فايل در DB درج شده)
2- اگر مي خواهيد خود فيلم را داخل بانك ذخيره كنيد مي توانيد از FileStream استفاده كنيد با استفاده از اين نوع داده مي توانيد فايل هايي بزرگ و حجيم را داخل DB ذخيره كنيد البته اين نوع داده محتواي فايل را داخل خودش ذخيره نمي كند بلكه آدرس فايل را داخل خودش ذخيره مي كنه و عملا مسيري كه داده در آن ذخيره شده با بانك اطلاعاتي شما در ارتباط مي باشه
---------
در ضمن در SQL Server 2012 يه نوع داده جديد به نام FileTable ايجاد شده كه شما يك دايركتوري رو به اون معرفي مي كنيد بعدش هر فايل يا شاخه اي كه داخل دايركتوري مورد نظر ايجاد كنيد خود به خود يك ركورد در DB درج مي شود به ازاي عمليات حذف هم اين كار به طور خودكار انجام مي شود.
موفق باشيد
انیشتین
پنج شنبه 20 بهمن 1390, 18:30 عصر
دوست عزیز آقای in_chand_nafar (http://barnamenevis.org/member.php?147043-in_chand_nafar)
1- اگر از این نوع داده استفاده کنم ، هنگام باز یابی جنس رکورد از نوع استرینگ خواهد بود !؟.. مثلا برای فرار دادن در متغیری از نوع استرینگ در زبان سی شارپ..
2- خود شما توابعی برای جستجو داخل یک فیلد در اس کیو ال سراغ دارید؟.. توجه کنید لطفا که قرار هست تعداد زیادی جمله به عنوان زیر نویس یک فیلم خاص داخل یک فیلد به عنوان زیر نویس ذخیره بشه... بقیه فیلد های اون رکورد هم میتونند اطلاعات دیگری در مورد اون فیلم یا موسیقی باشند.. حالا قرار هست یک جمله در داخل اطلاعات یک فیلد جستجو بشه...اگر بود که فیلد تو خروجی قرار میگره اگر نبود به سراغ فیلد بعدی تو رکورد بعد یمیره.. برای همچین جستجویی تابعی تو اس کیو ال سراغ دارید؟
3- اگر از فایل استریم استفاده کنم در حقیقت داده اصلی بر روی هارد کپی میشه و فقط آدرس اون داخل دیتا بیس قرار میگیره؟..درست فهمیدم؟
از همکاری و راهنمایی شما ممنونم...:چشمک:
in_chand_nafar
پنج شنبه 20 بهمن 1390, 18:54 عصر
دوست عزيز
ساختار پيشنهادي من به شكل زير است (البته باز هم نياز به بررسي دارد)
اين فيلدها مربوط به جدول فيلم است و فرض شده هر فيلم داراي يك فايل براي خودش و يك فايل براي زير نويس است. همچينن فرض بر اين است كه زير نويس ها شما با نرم افزارهاي مشهور ساخته شده و در قالب Text و يا XMLاست
1- كد فيلم 2- نام فيلم 3-زير نويس فيلم 4- خود فيلم
بعد از درج ركورد به ازاي يك فيلم پس از راه اندازي FullText Searchدر SQL مي توانيد از جستجو را بر اساس ايندكس هاي توليد شده انجام دهيد
شما به خاطر اينكه خوب در جريان قرار بگيري در خود سايت به دنبال مطالب زير باش : كليه مواردي كه اشاره كردم رو در سايت جستجو كن و مقاله هاي موجود را بخون
1- FullText Search در SQL Server
2- استفاده از Filestream : توي سايت Filestream و SQL را تواما با هم جستجو كن
به اين دو تا لينكي كه مي دم هم سر بزن
http://msdn.microsoft.com/en-us/library/cc716724.aspx
http://www.mssqltips.com/sqlservertip/1489/using-filestream-to-store-blobs-in-the-ntfs-file-system-in-sql-server-2008/
http://www.sql-server-performance.com/2010/full-text-search-2008/
http://www.sql-server-performance.com/2010/full-text-search-2008/2/
http://www.sql-server-performance.com/2010/full-text-search-2008/3/
بعد كه جريان را كامل فهميدي دوباره اگر سوالي داشتي در خدمت هستيم
سوالات بعدي كه برات پيش مياد احتمالا در مورد تنظيمات FullText Searchو توابع مورد نياز براي سرچ است فعلا با اين لينك ها و راهنمايي كه كردم سر و كله بزن تا بعد
در ضمن ادامه راهنمايي ها منوط به درج كشفيات و ... شما از موارد زير در همين تاپيك است كه ساير دوستان هم بتوانند استفاده كنند
موفق باشيد
vof.ir
شنبه 22 بهمن 1390, 23:47 عصر
با سلام دوست عزیز فکر میکنم که این مقاله به شما کمک کند
http://www.dotnettips.info/2009/09/filestream-2008_27.html
یاحق
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.