نمایش نتایج 1 تا 13 از 13

نام تاپیک: بهترین روش برای نوشتن Search

  1. #1
    کاربر دائمی آواتار maxpayn2
    تاریخ عضویت
    مهر 1385
    محل زندگی
    طبقه سوم - اطاق اول - جولوی مانیتور - روی صندلی
    پست
    1,068

    بهترین روش برای نوشتن Search

    سلام
    بهترین روش برای نوشتن یک سرچ قوی برای سایت با دیتا بیس SQL چیه ؟

  2. #2

  3. #3
    کاربر دائمی آواتار delphi77
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    ایران تهران
    پست
    743
    و چطور می شه ازش در سایت استفاده کرد

  4. #4
    همون طور که میشه در موردش در سایت جستجو کرد... به راحتی.

  5. #5
    کاربر دائمی آواتار maxpayn2
    تاریخ عضویت
    مهر 1385
    محل زندگی
    طبقه سوم - اطاق اول - جولوی مانیتور - روی صندلی
    پست
    1,068
    آیا SQL 2000 هم full text search رو داره ؟ اگه داره بعد از نصب چه طوری میشه اون رو اضافه کرد ؟

  6. #6
    کاربر دائمی آواتار سار
    تاریخ عضویت
    اسفند 1382
    محل زندگی
    تورین-ایتالیا
    پست
    1,044
    نقل قول نوشته شده توسط Behrouz_Rad مشاهده تاپیک
    Full Text Search

    Search About it
    بهروز خان Search About it یک تکنولوژی است یا منظورت معنی فارسیش بود؟!

  7. #7
    کاربر دائمی آواتار سار
    تاریخ عضویت
    اسفند 1382
    محل زندگی
    تورین-ایتالیا
    پست
    1,044
    نقل قول نوشته شده توسط maxpayn2 مشاهده تاپیک
    آیا SQL 2000 هم full text search رو داره ؟ اگه داره بعد از نصب چه طوری میشه اون رو اضافه کرد ؟
    بله داره. اگر درست یادم باشه تو بخش مقالات باید یک مقاله در این مورد باشه.

  8. #8
    نقل قول نوشته شده توسط سار مشاهده تاپیک
    بهروز خان Search About it یک تکنولوژی است یا منظورت معنی فارسیش بود؟!
    در برخی پست هام این جمله رو می بینی. یعنی "در موردش جستجو کن"

  9. #9
    کاربر دائمی آواتار maxpayn2
    تاریخ عضویت
    مهر 1385
    محل زندگی
    طبقه سوم - اطاق اول - جولوی مانیتور - روی صندلی
    پست
    1,068
    نقل قول نوشته شده توسط سار مشاهده تاپیک
    بله داره. اگر درست یادم باشه تو بخش مقالات باید یک مقاله در این مورد باشه.
    اگه موقع نصب SQL 2000 یادم رفته باشه full text search رو نصب کنم باید چی کار کنم ، جستجو کردم چیزی در این مورد نبود

  10. #10
    این سوالت، یک سوال جدیده.
    در بخش SQL Server مطرح کن.

  11. #11
    کاربر دائمی آواتار maxpayn2
    تاریخ عضویت
    مهر 1385
    محل زندگی
    طبقه سوم - اطاق اول - جولوی مانیتور - روی صندلی
    پست
    1,068
    چشم ، خیلی ممنون ، تصمیم گرفتم 2005 نصب کنم

  12. #12
    کاربر دائمی آواتار mehrdad201
    تاریخ عضویت
    تیر 1386
    محل زندگی
    شمال ایران (مازندران)
    پست
    587
    شما اون مقاله ای رو که دوستان گفتند پیدا کردید ؟؟!؟!

    من هم دوست دارم که در این مورد بدونم و دارم جستجو می کنم.

  13. #13
    کاربر دائمی آواتار maxpayn2
    تاریخ عضویت
    مهر 1385
    محل زندگی
    طبقه سوم - اطاق اول - جولوی مانیتور - روی صندلی
    پست
    1,068
    اون لینک رو تو همین سایت (https://barnamenevis.org) پیدا کرده بودم

    با اجازه از نویسندش اون مقاله رو اینجا میزارم :

    جستجوهای قدرتمند , استفاده از Full Text Search
    نویسنده مطلب : مهدی خسروی
    منبع : DotNetSource.Com - DNS

    یک مثال: فرض کنیم چنین عبارتی را در یک فیلد داریم و در رکوردهای مشابه نیز به همین حجم .
    "به موجب مادة 7 قانون چک بلامحل مجازات فاعل، حبس تعزیری تعیین، ولی در مادة 13 همین قانون نوع حبس (تعزیری یا باز دارنده) قید نگردیده است، از طرفی مادة 12 قانون مجازات اسلامی انواع مجازاتها را به حدود، قصاص و دیات و تعزیرات و مجازاتهای باز دارنده تقسیم و هر کدام را تعریف نموده است، لذا با توجه به مقدمة فوق، آیا مجازات مقرر در مواد 7 و 13 قانون صدور چک بلامحل از نوع تعزیری است یا بازدارنده؟ و آیا می‌توان محکومان صدور چک بلامحل را مشمول مواد 173 قانون ‌آیین ‌دادرسی دادگاههای عمومی و انقلاب که منحصراً مربوط به اشخاصی که محکومیت از نوع مجازاتهای بازدارنده تحصیل نموده‌اند تسری داد یا خیر؟
    توضیح:
    یکی از مباحث مهمی که در بین فقها مطرح است در مورد قلمرو اعمال مجازات تعزیری به عبارت دیگر افعال قابل تعزیر است. در این خصوص بین فقها چهار نظر وجود دارد:
    الف. عده‌ای معتقدند اساسا عملی قابل تعزیر است که شرعاً حرام باشد(به خاطر ارتکاب فعل حرام یا ترک واجب) که آن¬چه از کتابهای فقهی بر می‌آید قول مشهور فقها هم این نظر است.
    ب. عده¬ای دیگر اعتقاد دارند هر فعل حرام یا ترک واجب قابل تعزیرنیست بلکه عملی قابل تعزیر است که از «گناهان کبیره» باشد.
    ج. برخی را نیز عقیده بر این است، عملی قابل تعزیر است که اولاً : در شرع حرام شده باشد، ثانیاً : در شرع قابل تعزیر شناخته شده باشد ثالثاً : مقدار هم معین شده باشد.
    د. این دسته می‌گویند عملی قابل تعزیر است که منجر به اضرار به غیر شود، به عبارت دیگر، هر عملی که مفسده زا باشد می‌تواند ملاک تعزیر قرار گیرد.
    با توجه مفاهیم داده شده می‌توان، حرام را به حرام شرعی و حرام عقلی و واجب را به واجب شرعی و واجب عقلی تقسیم نمود که حرام و واجب شرعی همان است که توسط شارع مقدس تعیین شده و حرام و واجب عقلی همان است که عقلای جهان بر قبح آن اتفاق دارند. همانند جرایم رانندگی یا جرم صدور چک بلامحل.
    بنابراین از نظر فقهی، جرایم موجب تعزیر دو دسته¬اند :
    1. جرایمی که همواره در جامعه وجود داشته و به عنوان جرم شناخته شده و در زمان شارع هم بوده است، اعم از تعزیرات معینه مثل وطی با بهایم و غیر معینه مثل اعمال منافی عفت غیر از زنا که به این¬ها «تعزیرات شرعی» می‌گویند.
    2. دسته دوم جرایمی که بر حسب زمان و مکان از ناحیه حکومت تعریف و ارتکاب آنها موجب الزامات یا ممنوعیت¬های حکومتی مجازات تعزیری است که هم اکنون ما آنها را تعزیرات حکومتی یا مجازات بازدارنده می‌نامیم."

    حال می خواهیم جستجویی داشته باشیم که به دنبال کلمه ی محکومیت در یک چنین رکوردی بگردیم. فرض می کنیم اسم فیلد question میباشد با این خط کد می توانیم این کار را انجام دهیم:
    کد:

    SELECT * FROM t_question WHERE question LIKE '*محکومیت*'


    بله, همانطوری که گفتم نتیجه بازگردانده خواهد شد اما به مدت طول یک عمر! هرچقدر تعداد رکورد ها بیشتر شود مدت زمان نیز ....! در این هنگام تنها چیزی که به کمک ما می آید Full Text Indexing می باشد که در زیر در مورد آن صحبت می کنیم.

    یکی از امکانات جالب و قدرتمند SQL Server که از نسخه 7 به بالا اضافه شده است Full Text Search میباشد.

    ابتدا باید کاتالوگهایی ایجاد شوند و بعد از آن جداولی که قرار است روی آنها جستجوهای حجیم انجام شود را به این کاتالوگها اضافه نمود و در نهایت نیز باید فیلدهایی که قرار است جستجو بر روی آنها انجام شوند تعیین خواهد شوند. حال شما میتوانید بروی این جدول و فیلدهایی که کاندید شده اند جستجوهایی متنی کامل(full text) و یا جستجوهای مفهومی داشته باشید.

    در جستجوی مفهومی نیز شما میتوانید با جملات انگلیسی از بانک اطلاعاتی سئوال کنید مثلا:"what "What is JAVA" و بانک اطلاعاتی جوابهای سوال شما را بصورت لیست از رکوردها که به آن مربوط میشود خواهد داد. از سوی دیگر شما در جستجوهایتان میتوانید بگویید که مثلا به دنبال کلمه eat بگرد و حالتهای ماضی و مضارع آن را(ate و eating) نیز اگر وجود دارد بیاور.

    لازم به ذکر است که شما میتوانید stopwordها و یا کلمات زاید را تعریف کرده و عملیات ایندکس سازی و به پیرو آن جستجو روی آن ها انجام نشود مانند:the,and, است , بود , .....

    معایب :
    1- ایجاد یک Full Text Index کار زمانگیری بوده و باید دقیق انجام شود (اما به زحمتش می ارزه!!)

    2- رکوردهای جدید و یا ویرایش شده باید سرشماری(population) شوند تا بتوان روی آن جستجو کرد که این نیز خود مشکلات زیادی را ایجاد میکند.(کمی تجربه این مشکلات را هم براحتی حل می کند!!)

    3- امکانات جستجوی مفهومی آن تنها برای زبان انگلیسی میباشد.(می توان این کار را برای زبان فارسی و دیگر زبان ها انجام داد اما یک انسان از خود گذشته باید پیدا شود تا کلمات و هم خانواده ها و ماضی و مضارع و غیره و غیره را برای این انجین تعریف کند)

    4- کار کردن با آن برای زبانهای غیر انگلیسی از جمله فارسی مشکلات و تنظیمات خاصی نیاز دارد.(که البته در نسخه ی 2005 مشکلات خیلی خیلی کم شده اند و بهتر است بگویم تقریبا مشکلی وجود ندارد.)

    5- فرمت دستورات آن مختص SQLServer بوده و از استانداردها تبعیت نمیکند.

    کمی چرت و پرت :
    1- ابتدا باید مطمئن شوید که فول تکست را هنگام نصب اسکیوال نصب کرده اید.
    2- این قابلیت را برای بانک خود فعال کنید, برای آگاهی از فعال بودن آن این کد کمکتان می کند:
    کد:

    SELECT DatabaseProperty ('DBNname','IsFulltextEnabled')


    اگر خروجی صفر باشید یعنی تا فعال نیست پس باید فعال شود:
    کد:

    EXEC sp_fulltext_database 'enable'

    sp_configure "show advanced options",1
    reconfigure


    شما به هر تعداد که بخواهید میتوانید کاتالوگ تعریف کنید ولی در اسکیو ال 7 بیش از 5 کاتالوگ اکیداً توصیه نمیشود و با مشکلاتی روبرو خواهید شد!!!

    3- برای ایجاد کاتالوگ نام آنرا در این دستور وارد کنید:
    کد:

    exec sp_fulltext_catalog 'CATName+','create'


    4- این اندکس ها در کاتالوگ ها ذخیره می شوند جدول های مورد نظر خود را به این کاتالوگ ها اضافه کنید:
    کد:

    exec sp_fulltext_table 'TableName','create','CATName','IndexFieldName'


    5- حال نوبت افزودن فیلدها به کاتالوگ است:
    کد:

    EXEC sp_fulltext_table TableName,'deactivate'
    EXEC sp_fulltext_column TableName,FullTextFieldName,'add'
    EXEC sp_fulltext_table TableName,'activate'


    6- برای اجرا سرشماری نیز از این دستورات استفاده کنید(توجه داشته باشید که دو نوع وجود دارد که برای اطلاعات بیشتر به BooksOnline مراجعه کنید(:

    کد:

    EXEC sp_fulltext_catalog 'CATName','start_full'

    EXEC sp_fulltext_catalog 'CATName','start_incremental'


    وقتی سرشماری انجام شد می توانید کوئری های خود را اجرا کنید:

    کوئری که در بالا داشتیم و عبارت محکومیت را جستجو می کرد به این صورت در خواهد آمد اما اینبار در کسری از ثانیه پاسخ خواهد داد:
    کد:

    SELECT * FROM t_question WHERE CONTAINS(question,'محکومیت')


    می توان جستجو های ترکیبی نیز داشت که این کار با دلالت کیورد هایی مثل AND OR و ... انجام خواهد شد. مثلا دنبال رکوردی می گردیم که علاوه بر عبارت محکومیت شامل عبارت شرع نیز باشد. به این صورت:
    کد:

    SELECT * FROM t_question WHERE CONTAINS(question, '"محکومیت" and "شرع"'(

    نمونه ای نیز از دستورات مربوطه:

    کد:

    SELECT ProductName
    FROM Products
    WHERE CONTAINS(ProductName, ' "choc*" ')

    کد:

    SELECT ProductName
    FROM Products
    WHERE CONTAINS(ProductName, 'spread NEAR Boysenberry')

    کد:

    SELECT ProductName
    FROM Products
    WHERE CONTAINS(ProductName, ' FORMSOF (INFLECTIONAL, dry) ')

    حتما یک سری به BooksOnline هم بزنید.
    نکته ی دیگر این است که تمامی مراحل ایجاد کاتالوگ و افزودن جدول به کاتالوگ و راه اندازی Full Text Search برای بانک و ... و .... همگی از طریق ویزاردها قابل انجام شدن می باشند.

    سوالات خود را حتما در ادامه تاپیک مطرح کنید. این بحث واقعا بحث شیرین و جالبی است. نکاتی در مورد بالاتر بردن کارایی این امکان موجود هست که اگر مایل بودید ادامه خواهیم داد.

    با تشکر – مهدی خسروی

تاپیک های مشابه

  1. سورس برنامه Search
    نوشته شده توسط dasa در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 9
    آخرین پست: یک شنبه 13 آذر 1384, 17:42 عصر
  2. search
    نوشته شده توسط mahboobeh در بخش برنامه نویسی در 6 VB
    پاسخ: 5
    آخرین پست: شنبه 14 آبان 1384, 23:03 عصر
  3. search
    نوشته شده توسط PARIZAD در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: سه شنبه 03 آبان 1384, 13:20 عصر
  4. Search
    نوشته شده توسط nasimnastaran در بخش C#‎‎
    پاسخ: 2
    آخرین پست: دوشنبه 14 شهریور 1384, 16:55 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •