PDA

View Full Version : سوال: Full Text Search در DBISAM



nassim_20
شنبه 11 خرداد 1387, 17:21 عصر
خاصیت Full Text Search در DBISAM چیست و چطوری باید از ان استفاده کرد
آیا با استفاده از این خاصیت میشه یک عبارت را در یک فیلد از نوع memo جستجو کرد البته تعداد رکوردها زیاد است شاید چیزی نزدیک به 600هزار رکورد ولی طول هر memo شاید به اندازه حداکثر 3 صفحه ورد باشد
اگر مثالی یا مقاله ای دارید لطف کنید
البته باید بگم گشتم ولی چیز قابل توجهی پیدا نکردم
راستی کامپوننتهای Rubicon چکار انجام می دهند کدومشو بهتره من این کامپوننت رو گرفتم چیزی ازش سردرنیاوردم

دنیای دلفی
شنبه 11 خرداد 1387, 19:59 عصر
نياز به استفاده از كامپوننت خاصي نيست كافيه شما يك ايندكس Full تعريف كنيد .


with f.DataSource.DataSet do
begin
if RadioButton1.Checked then
Filter:='TEXTSEARCH('+QuotedStr(TextSearch.Text)+' IN '+'"'+DBGridEh1.Columns[DBGridEh1.SelectedIndex].FieldName+'"'+')';
if RadioButton2.Checked then
Filter:='TEXTSEARCH('+QuotedStr(TextSearch.Text+'* ')+'IN '+'"'+DBGridEh1.Columns[DBGridEh1.SelectedIndex].FieldName+'"'+')';
Filtered:=True;
end;

دنیای دلفی
شنبه 11 خرداد 1387, 20:00 عصر
كد بالارو يكم دستكاري كن خلاصه

nassim_20
شنبه 25 خرداد 1387, 20:33 عصر
من از کد فوق که استفاده می کنم با اینکه بانکم کمتر از 100 فیلد داره و هر فیلد متنی از نوع memo کمتر از دو صفحه است باز هم چند ثانیه تاخیر برای جستجو دارم قبل از کد فوق کد دیگری نباید بنویسیم مثلا اینکه index بسازه یا هر چیز دیگه
من یه جایی خونده بودم
"هنگامی که بخواهید یک کلمه یا متنی را در یک فیلد متنی جستجو کنید . و در query خود از like استفاده کرده باشید این سرویس به شما کمک می کند تا query شما سریع تر اجرا شود."
آیا این درست است؟

در ضمن ایندکس Full هم برای فیلدم گذاشتم
نمی دونم درست این کار رو کردم یا نه ببینید من توی
data sysyem utility جدولم رو باز کردم و توی تب full text indexsing دکمه select رو زدم و فیلدم رو انتخاب کردم همینطوره دیگه
راستی جستجوی help دلفی خودش از همین خاصیت استفاده کرده درسته پس چرا اینقدر سریع سرچ میکنه

nassim_20
شنبه 25 خرداد 1387, 21:03 عصر
راستی اگه میشه یه مثال از جستجوی چند مورد با or بزنید من نوشتم برنامه ام قفل کرد
کدش اینه


DBISAMTable1.Filter:='TEXTSEARCH('+QuotedStr(Edit1 .Text)+' IN "Matn" or'+QuotedStr(Edit2.Text)+' IN "Matn" '+')';

nassim_20
یک شنبه 26 خرداد 1387, 09:27 صبح
کسی جواب نمیده
پس اینو بگید چطوری می تونم از دستورات sql استفاده کنم

راستی چطوری میشه dbisam رو رجیسترش کرد من نسخه trial رو دارم و هر بار برای باز کردن بانکم بهم پیغام میده بنابراین برای کارهای تجاری نمیشه استفاده کرد

دنیای دلفی
یک شنبه 26 خرداد 1387, 16:06 عصر
وقتي پولشو دادي رجيستر مي شه .
به اين لينك نگاه كن لينك (http://www.jonoobshop.com/plugins/e_classifieds/classifieds.php?0.item.10.10.45)

nassim_20
یک شنبه 26 خرداد 1387, 17:16 عصر
وقتي پولشو دادي رجيستر مي شه .
به اين لينك نگاه كن لينك
خیلی ممنونم

حالا نمیشه بقیه سوالات رو هم جواب بدید

nassim_20
یک شنبه 26 خرداد 1387, 20:59 عصر
این کد درسته؟

select * from table1 where textsearch("db*" in notes)

ارور میده از قسمت "db*"

توروخدا یکی کمک کنه اینهمه از DBisam توی این تالارها تعریف شده حالا که می پرسیم کسی جوابگو نیست

Masoudxb
دوشنبه 03 تیر 1387, 00:07 صبح
با سلام؛
راستش من تا حالا مورد شما در DBISAM برام پیش نیومده ، اما چند مورد هست که شاید با ذکرشون شما به یه نتایجی برسید. برای کار با Full Text Indexing در DBISAM از رخدادهای OnTextIndexFilter و OnTextIndexTokenFilter و از متدهای BuildWordList و GetDefaultTextIndexParams استفاده کنید. (منبع DBISAM 4.26 Manual) برای اطلاعات بیشتر در این زمینه هم همون Manual رو مرور کنید بهتر به نتیجه میرسید. ببخشید اگه نتونستم در این رابطه کمکی بکنم. موفق باشید.

nassim_20
پنج شنبه 06 تیر 1387, 10:05 صبح
DBISAM هیچ دمویی یا مثالی ازش ندارید
آخه نمیشه نمیشه نمیشه نمیشه اصلا سرعت جستجو بالا نیست توروخدا یکی کمک کنه

taknegaar
جمعه 28 تیر 1387, 17:46 عصر
اصولا fulltext در دیتابیس هایی در حد DBISAM به شوخی شبیه هستند و برای کار با fulltext بهتره بهشون فکر نکنید و fulltext رو برای دیتابیسهای سرور ساید، فقط لحاظ کنید! ... (این توصیه به لحاظ تجربه بود!)
در هر حال یه دیتابیس انجین دیگه هم هست NexusDB که fulltext هم داره و البته از لحاظ امکانات از DBISAM قویتره:
http://www.nexusdb.com
یه انجین اوپن سورس هم هست به اسم SQLite که اینهم unicode ساپورت میکنه در ضمن fulltext هم داره:
SQLite Home Page (http://www.sqlite.org)
SQLite for Delphi (http://sqlite4delphi.sourceforge.net)

در ضمن به FireBird هم که اوپن سورسه یه نگاهی بیاندازید
البته firebird رو باید درحد mysql ، interbase ، mssqlserver و حتی postgresql مقایسه کرد
ولی میشه باهاش بصورت کلاینت هم کار کرد:
Firebird - The RDBMS that's going where you're going (http://www.firebirdsql.org)
SourceForge.net: Files (http://sourceforge.net/project/showfiles.php?group_id=9028)
در ضمن برای اتصال بهش از همون interbase هم میشه استفاده کرد چون کپی اونه ...