คำถามติดแท็ก full-text-search

การค้นหาข้อความในคอลเล็กชันของเอกสารหรือฟิลด์ข้อความว่างในฐานข้อมูลเพื่อค้นหาข้อความที่มีคำหรือการรวมกันของคำ

2
เป็นไปได้ INDEX บนเขตข้อมูล VARCHAR ใน MySql
ฉันทำงานในฐานข้อมูล MySqlโดยมีตารางดังนี้: +--------------+ | table_name | +--------------+ | myField | +--------------+ ... และฉันต้องการสอบถามจำนวนมากเช่นนี้(มี 5-10 สตริงในรายการ) : SELECT myField FROM table_name WHERE myField IN ('something', 'other stuff', 'some other a bit longer'...) จะมีแถวที่ไม่ซ้ำประมาณ 24.000.000 แถว 1)ฉันควรใช้ a FULLTEXTหรือและที่INDEXสำคัญสำหรับของฉันVARCHAR(150)? 2)ถ้าฉันเพิ่มตัวอักษรจาก 150 เป็น 220 หรือ 250 ... มันจะสร้างความแตกต่างได้หรือไม่? (มีวิธีการคำนวณหรือไม่?) 3)ตามที่ฉันพูดพวกเขาจะไม่ซ้ำกันดังนั้นสนามของฉันควรเป็นคีย์หลัก การเพิ่มคีย์หลักในฟิลด์ซึ่งเป็น VARCHAR INDEX …

5
เทคโนโลยีฐานข้อมูลใดที่เครื่องมือค้นหาขนาดใหญ่ใช้ [ปิด]
ไม่มีใครรู้ว่า Google หรือ Yahoo ทำการค้นหาคำหลักอย่างไรกับข้อมูลจำนวนมหาศาลมาก? พวกเขาใช้ฐานข้อมูลหรือเทคโนโลยีประเภทใด ใช้เวลาไม่กี่มิลลิวินาที แต่มีดัชนีมากกว่าพันล้านหน้า

1
แนวทางสำหรับการบำรุงรักษาดัชนีข้อความแบบเต็ม
แนวทางใดที่ควรได้รับการพิจารณาสำหรับการรักษาดัชนีข้อความแบบเต็ม? ฉันควรสร้างใหม่หรือจัดระเบียบแค็ตตาล็อกข้อความแบบเต็ม (ดูBOL ) หรือไม่ จังหวะการบำรุงรักษาที่เหมาะสมคืออะไร ฮิวริสติกแบบใดที่คล้ายกับเกณฑ์การแตกแฟรกเมนต์ 10% และ 30%) สามารถใช้เพื่อกำหนดว่าเมื่อใดที่ต้องมีการบำรุงรักษา (ทุกอย่างด้านล่างเป็นเพียงข้อมูลเพิ่มเติมที่อธิบายรายละเอียดของคำถามและแสดงสิ่งที่ฉันคิดเกี่ยวกับจนถึงตอนนี้) ข้อมูลเพิ่มเติม: การวิจัยเริ่มต้นของฉัน มีจำนวนมากของทรัพยากรในการบำรุงรักษาดัชนี B-ต้นไม้ (เช่นคำถามนี้ , สคริปต์ Ola Hallengren ของและบล็อกโพสต์เกี่ยวกับเรื่องต่าง ๆ นานาจากเว็บไซต์อื่น ๆ ) อย่างไรก็ตามฉันพบว่าไม่มีทรัพยากรเหล่านี้ให้คำแนะนำหรือสคริปต์สำหรับการบำรุงรักษาดัชนี fulltext มีเอกสารของ Microsoftที่กล่าวถึงการจัดเรียงดัชนีดัชนีต้นไม้ของตารางฐานและจากนั้นดำเนินการ REORGANIZE ในแค็ตตาล็อกข้อความอาจปรับปรุงประสิทธิภาพ แต่ไม่ได้สัมผัสกับคำแนะนำเฉพาะใด ๆ เพิ่มเติม ฉันยังพบคำถามนี้แต่ส่วนใหญ่เน้นไปที่การติดตามการเปลี่ยนแปลง (การอัปเดตข้อมูลไปยังตารางอ้างอิงในดัชนี fulltext) อย่างไรและไม่ใช่ประเภทของการบำรุงรักษาตามกำหนดเวลาปกติที่สามารถเพิ่มประสิทธิภาพของดัชนีได้ ข้อมูลเพิ่มเติม: การทดสอบประสิทธิภาพขั้นพื้นฐาน นี้SQL ซอมีรหัสที่สามารถใช้ในการสร้างดัชนีข้อความเต็มกับAUTOการติดตามการเปลี่ยนแปลงและตรวจสอบทั้งขนาดและประสิทธิภาพการทำงานของดัชนีแบบสอบถามเป็นข้อมูลในตารางที่มีการแก้ไข เมื่อฉันเรียกใช้ตรรกะของสคริปต์บนสำเนาของข้อมูลการผลิตของฉัน (ตรงข้ามกับข้อมูลที่ประดิษฐ์ขึ้นในซอ) นี่คือบทสรุปของผลลัพธ์ที่ฉันเห็นหลังจากแต่ละขั้นตอนการปรับเปลี่ยนข้อมูล: แม้ว่าคำแถลงการปรับปรุงในสคริปต์นี้มีการวางแผนอย่างเป็นธรรม แต่ดูเหมือนว่าข้อมูลนี้จะแสดงให้เห็นว่ามีจำนวนมากที่ต้องได้รับจากการบำรุงรักษาตามปกติ ข้อมูลเพิ่มเติม: ความคิดเริ่มต้น …

3
LIKE ถูกนำไปใช้อย่างไร
ทุกคนสามารถอธิบายวิธีการใช้งานตัวดำเนินการ LIKE ในระบบฐานข้อมูลปัจจุบัน (เช่น MySQL หรือ Postgres) ได้อย่างไร หรือชี้ให้ฉันอ้างอิงบางอย่างที่อธิบายได้หรือไม่ แนวทางที่ไร้เดียงสาคือการตรวจสอบแต่ละเร็กคอร์ดดำเนินการจับคู่นิพจน์ปกติหรือการจับคู่สตริงบางส่วนในสาขาที่สนใจ แต่ฉันมีความรู้สึก (หวัง) ว่าระบบเหล่านี้ทำสิ่งที่ชาญฉลาดขึ้น

2
การค้นหา Trigram ช้าลงมากเมื่อสตริงการค้นหายาวขึ้น
ในฐานข้อมูล Postgres 9.1 ฉันมีตารางที่table1มีแถว ~ 1.5M และคอลัมน์label(ชื่อที่เรียบง่ายเพื่อประโยชน์ของคำถามนี้) มีดัชนีการทำงานของ Trigram-on lower(unaccent(label)) ( unaccent()ถูกทำให้ไม่เปลี่ยนรูปเพื่ออนุญาตให้ใช้ในดัชนี) แบบสอบถามต่อไปนี้ค่อนข้างเร็ว: SELECT count(*) FROM table1 WHERE (lower(unaccent(label)) like lower(unaccent('%someword%'))); count ------- 1 (1 row) Time: 394,295 ms แต่แบบสอบถามต่อไปนี้ช้าลง: SELECT count(*) FROM table1 WHERE (lower(unaccent(label)) like lower(unaccent('%someword and some more%'))); count ------- 1 (1 row) Time: 1405,749 ms และการเพิ่มคำอื่น …

1
มีหน่วยความจำระบบไม่เพียงพอในกลุ่มทรัพยากร 'ภายใน' เพื่อเรียกใช้แบบสอบถามนี้
หนึ่งในเซิร์ฟเวอร์การผลิตของเรากำลังรายงานข้อผิดพลาดในบันทึก ข้อผิดพลาด: 701, ความรุนแรง: 17, สถานะ: 123 มีหน่วยความจำระบบไม่เพียงพอในกลุ่มทรัพยากร 'ภายใน' เพื่อเรียกใช้แบบสอบถามนี้ ฉันค้นหาข้อผิดพลาดนี้และพบว่าเป็นข้อผิดพลาดและมี Hot fix พร้อม Service Pack 2 นี่คือรายละเอียดของเซิร์ฟเวอร์: Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 Standard Edition (64 บิต) จำนวนโปรเซสเซอร์: 24 (มี 2 โหนด NUMA แต่ละแห่งมี 12 คอร์) หน่วยความจำ: RAM 24GB จัดสรรสำหรับ SQL Server Query Batchload / ขั้นต่ำ: 5,000+ …

1
รับการจับคู่บางส่วนจากคอลัมน์ TSVECTOR ที่จัดทำดัชนีโดย GIN
ฉันต้องการได้รับผลลัพธ์จากแบบสอบถามนี้: SELECT * FROM ( SELECT id, subject FROM mailboxes WHERE tsv @@ plainto_tsquery('avail') ) AS t1 ORDER by id DESC; งานนี้และแถวกลับมาพร้อมกับมีtsv Availableแต่ถ้าฉันใช้avai(ดร็อปlable) มันไม่สามารถหาอะไรได้เลย คำค้นหาทั้งหมดต้องอยู่ในพจนานุกรมหรือไม่ เราไม่สามารถค้นหาจดหมายเช่นนั้นได้หรือ ฉันมีฐานข้อมูลที่มีเนื้อหาอีเมล (เนื้อหา) และฉันต้องการทำให้มันเร็วขึ้นเรื่อย ๆ ทุกวัน ขณะนี้ฉันกำลังใช้ ... WHERE content ~* 'letters`

5
SQL Server 2008 ดัชนีข้อความแบบเต็มไม่เคยดูเหมือนจะเสร็จสมบูรณ์
เว็บไซต์ของเรามีฐานข้อมูล SQL Server 2008 R2 Express Edition พร้อมการจัดทำดัชนีข้อความแบบเต็มสำหรับการค้นหาเว็บไซต์ของเรา ทุกครั้งที่มีการเพิ่มหรืออัปเดตระเบียนใหม่ในหนึ่งในตารางที่จัดทำดัชนีกระบวนการจัดทำดัชนีจะไม่เสร็จ ฉันได้รับการตรวจสอบสถานะในช่วงหลายสัปดาห์ที่ผ่านมาโดยใช้ข้อความค้นหาเดียวกันบนเว็บไซต์นี้: http://www.sqlmonster.com/Uwe/Forum.aspx/sql-server-search/2155/Why-is-this -population สละให้ยาว นี่คือสิ่งที่ฉันเห็นเมื่อฉันเรียกใช้แบบสอบถาม (คลิกเพื่อดูขนาดเต็ม): ระเบียนใหม่ล่าสุดในตารางที่จัดทำดัชนีไม่สมบูรณ์และไม่สามารถค้นหาได้ แม้ว่าจะมีข้อมูลไม่มากในตารางฉันรอวันเพื่อดูว่าการจัดทำดัชนีเสร็จสมบูรณ์ แต่ไม่มีอะไรเปลี่ยนแปลง วิธีเดียวที่ฉันสามารถทำให้การทำดัชนีเสร็จสมบูรณ์ได้คือการสร้างแคตตาล็อกใหม่หรือเพื่อดรอปและสร้างดัชนีทั้งหมดอีกครั้ง ทุกครั้งที่ฉันทำสิ่งนั้นปัญหาเดียวกันจะกลับมาอีกครั้งทันทีที่มีการเพิ่มสถิติใหม่ครั้งแรก นี่คือสถานะเซิร์ฟเวอร์ในกรณี: Quad-Core AMD Opteron 2.34GHz 4GB RAM Windows Server 2008 R2 Enterprise SP1 x64 SQL Server 2008 R2 Express Edition พร้อมบริการขั้นสูง x64

2
ฉันจะใช้การค้นหาข้อความแบบเต็มในคอลัมน์ jsonb กับ Postgres ได้อย่างไร
ดังนั้นฉันจึงมีjsonbคอลัมน์ที่มีรายการเช่นนี้: https://pastebin.com/LxJ8rKk4 มีวิธีใดบ้างที่จะใช้การค้นหาข้อความแบบเต็มในคอลัมน์ jsonb ทั้งหมด?

4
ผลลัพธ์การค้นหาข้อความแบบเต็มในเวลาจำนวนมากใน 'การกำหนดค่าเริ่มต้น FULLTEXT'
ขณะนี้ฉันกำลังพยายามเรียกใช้แบบสอบถามบางอย่างเทียบกับการถ่ายโอนข้อมูลของความคิดเห็นของ Stack Overflow นี่คือลักษณะของสคีมา: CREATE TABLE `socomments` ( `Id` int(11) NOT NULL, `PostId` int(11) NOT NULL, `Score` int(11) DEFAULT NULL, `Text` varchar(600) NOT NULL, `CreationDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `UserId` int(11) NOT NULL, PRIMARY KEY (`Id`), KEY `idx_socomments_PostId` (`PostId`), KEY `CreationDate` (`CreationDate`), FULLTEXT KEY `Text` (`Text`) …

2
แคตตาล็อกข้อความแบบเต็มพร้อมการเปลี่ยนแปลงจะติดตาม: AUTO จะอัปเดตโดยอัตโนมัติหรือไม่หากการติดตามการเปลี่ยนแปลงสำหรับตารางนั้นไม่ได้เปิดใช้งานหรือไม่
ฉันมีตารางฐานข้อมูลนี้ที่ควรเก็บดัชนีข้อความแบบล่าสุด อย่างไรก็ตามฉันไม่เห็นว่าเกิดขึ้นเลย (ไม่มีข้อผิดพลาดในบันทึกเพราะบันทึกล่าสุดที่ฉันเห็นคือเมื่อฉันเรียกมันด้วยตนเอง) นี่คือสิ่งที่ฉันเห็น ... แต่บนโต๊ะตัวเอง ... นี่อาจเป็นสาเหตุที่ไม่เกิดขึ้นโดยอัตโนมัติหรือไม่

1
ทำไม LIKE ถึงเร็วกว่า MATCH ถึง 4 เท่า ... เทียบกับดัชนี FULLTEXT ใน MySQL
ฉันไม่ได้รับสิ่งนี้ ฉันมีตารางที่มีดัชนีเหล่านี้ PRIMARY post_id INDEX topic_id FULLTEXT post_text ตารางมี (เฉพาะ) 346 000 แถว ฉันพยายามที่จะดำเนินการ 2 แบบสอบถาม SELECT post_id FROM phpbb_posts WHERE topic_id = 144017 AND post_id != 155352 AND MATCH(post_text) AGAINST('http://rapidshare.com/files/5494794/photo.rar') ใช้เวลา 4.05 วินาทีในขณะที่ SELECT post_id FROM phpbb_posts WHERE topic_id=144017 AND post_id != 155352 AND post_text LIKE ('%http://rapidshare.com/files/5494794/photo.rar%') ใช้เวลา 0.027 …

1
SQL Server 2014 Express ด้วย Advanced Services รองรับการค้นหาข้อความทั้งหมดหรือไม่
ฉันติดตั้ง SQL Server 2014 Express edition ด้วยบริการขั้นสูงแล้ว ฉันหวังว่าจะลองใช้คุณสมบัติการค้นหาข้อความแบบเต็ม ฉันอ่านที่นี่ว่าการค้นหาข้อความแบบเต็มได้รับการสนับสนุนโดยฉบับด่วนปี 2014 แต่หลังจากติดตั้งและพยายามสร้างดัชนีข้อความแบบเต็มฉันได้รับข้อผิดพลาดที่ระบุว่าดัชนีข้อความแบบเต็มไม่สนับสนุนในเซิร์ฟเวอร์ sql เวอร์ชันนี้ ดัชนีข้อความแบบเต็มได้รับการสนับสนุนจริงหรือไม่? มีโอกาสที่ฉันจะติดตั้งเวอร์ชันที่ไม่ถูกต้อง (ไม่ใช่บริการขั้นสูง) หรือไม่ ฉันถอนการติดตั้งและติดตั้งใหม่สองครั้งเพื่อให้แน่ใจ แต่ปัญหาเดียวกันทั้งสองครั้ง ฉันมั่นใจว่าฉันติดตั้งโดยใช้เครื่องมือติดตั้งบริการขั้นสูง ฉันใช้ Windows 7, 64 บิต

1
ดัชนีข้อความแบบเต็มใน SSMS 2008 R2 อยู่ที่ไหน
ฉันสร้างฐานข้อมูลใหม่ไม่กี่ตารางและดัชนีข้อความแบบเต็ม & แคตตาล็อกโดยใช้ Studio จัดการเซิร์ฟเวอร์ SQL โดยไม่มีปัญหา ฉันต้องการคัดลอกสคริปต์การสร้าง T-SQL สำหรับแต่ละสคริปต์เพื่อรวมไว้ในเอกสารของฉัน ฉันสามารถรับสคริปต์การสร้างสำหรับฐานข้อมูลตารางคีย์ต่างประเทศและแคตตาล็อก แต่ดูเหมือนไม่พบดัชนีข้อความแบบเต็ม ฉันได้ตรวจสอบตารางสคริปต์ของตารางที่เกี่ยวข้องเป็น -> สร้างถึงและไม่อยู่ที่นั่นหรือไม่ได้อยู่ในแคตตาล็อก ความคิดใด ๆ เป็นเพราะฉันใช้ SQL Server Standard edition เท่านั้นหรือ

2
ช้าสั่งซื้อด้วย LIMIT
ฉันมีคำถามนี้: SELECT * FROM location WHERE to_tsvector('simple',unaccent2("city")) @@ to_tsquery('simple',unaccent2('wroclaw')) order by displaycount ฉันมีความสุขกับมัน: "Sort (cost=3842.56..3847.12 rows=1826 width=123) (actual time=1.915..2.084 rows=1307 loops=1)" " Sort Key: displaycount" " Sort Method: quicksort Memory: 206kB" " -> Bitmap Heap Scan on location (cost=34.40..3743.64 rows=1826 width=123) (actual time=0.788..1.208 rows=1307 loops=1)" " Recheck Cond: (to_tsvector('simple'::regconfig, unaccent2((city)::text)) …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.