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

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

2
โพสต์การค้นหาข้อความแบบเต็มด้วยหลายคอลัมน์ทำไมข้อตกลงในดัชนีและไม่อยู่ในรันไทม์
ฉันเจอการค้นหาข้อความแบบเต็มใน postgres ในไม่กี่วันที่ผ่านมาและฉันสับสนเล็กน้อยเกี่ยวกับการจัดทำดัชนีเมื่อค้นหาในหลายคอลัมน์ เอกสาร postgres พูดคุยเกี่ยวกับการสร้างts_vectorดัชนีในคอลัมน์ที่ต่อกันเช่น: CREATE INDEX pgweb_idx ON pgweb USING gin(to_tsvector('english', title || ' ' || body)); ซึ่งฉันสามารถค้นหาดังนี้: ... WHERE (to_tsvector('english', title||' '||body) @@ to_tsquery('english', 'foo')) อย่างไรก็ตามหากฉันต้องการค้นหาเฉพาะชื่อบางครั้งแค่เนื้อหาและบางครั้งทั้งสองฉันจะต้องมีดัชนีแยก 3 ตัว และถ้าฉันเพิ่มในคอลัมน์ที่สามนั่นอาจเป็น 6 ดัชนีและอื่น ๆ อีกทางเลือกหนึ่งที่ฉันไม่ได้เห็นในเอกสารเป็นเพียงการจัดทำดัชนีสองคอลัมน์แยกกันจากนั้นใช้WHERE...ORแบบสอบถามปกติ: ... WHERE (to_tsvector('english', title) @@ to_tsquery('english','foo')) OR (to_tsvector('english', body) @@ to_tsquery('english','foo')) การเปรียบเทียบทั้งสองแถวบน ~ 1 …

2
ปรับปรุงคิวรีช้าลงหลังจากเปิดใช้งานดัชนีข้อความแบบเต็มของเซิร์ฟเวอร์ SQL
ฉันมีเว็บไซต์ asp.net ที่มีการแทรกอัปเดตและลบคิวรีที่เรียกใช้กับฐานข้อมูลของฉันมากมาย ไม่กี่วันที่ผ่านมาฉันสร้างดัชนีข้อความแบบเต็มในสองคอลัมน์ของหนึ่งในตาราง หลังจากนั้นฉันก็รู้ว่าเมื่อเว็บไซต์รันคิวรีการอัพเดตบนตารางนั้นการใช้หน่วยความจำและดิสก์ของกระบวนการเซิร์ฟเวอร์ SQL กำลังกระโดดและการอัปเดตช้าลง แบบสอบถามทำงานโดยไม่มีปัญหาประสิทธิภาพใด ๆ ก่อนสร้างดัชนีข้อความแบบเต็ม ฉันยังตระหนักว่าแบบสอบถามแบบใช้ปรับปรุงที่ง่ายมากมาก่อนตอนนี้มีความซับซ้อนเนื่องจากแผนการดำเนินการในขณะนี้มีสิ่งต่าง ๆ เช่นการปรับปรุงดัชนีข้อความแบบเต็ม นี่เป็นส่วนหนึ่งของแผนการดำเนินการใหม่ที่ซับซ้อนหลังจากเปิดใช้งานข้อความแบบเต็ม: ในบางชั่วโมงเมื่อฉันอัปเดตเนื้อหาของไซต์ฉันเรียกใช้คิวรีการอัปเดต 5,000 รายการและฉันคิดว่ากระบวนการจัดทำดัชนีข้อความแบบเต็มจะทำในแต่ละครั้งสำหรับแต่ละแถว ฉันควรจะปิดการใช้งานการสแกนข้อความเต็มในการเริ่มต้นของการปรับปรุงแถวและจากนั้นอีกครั้งเปิดใช้งานได้ (ในขณะที่คำถามที่เกี่ยวข้องนี้ )? ฉันสามารถบอกให้ SQL Server หยุดจัดทำดัชนีข้อความแบบเต็มเป็นเวลา 5 นาทีแล้วเริ่มสร้างดัชนีข้อมูลใหม่ได้หรือไม่ มีทางเลือกที่ดีกว่านี้อีกไหม? ฉันใช้ SQL Server 2012

2
ค้นหา fulltext ช้าเนื่องจากการประมาณการแถวไม่ถูกต้องอย่างดุร้าย
ข้อความค้นหาแบบเต็มกับฐานข้อมูลนี้ (การเก็บตั๋วRT ( Request Tracker )) ดูเหมือนจะใช้เวลานานมากในการดำเนินการ ตารางสิ่งที่แนบ (มีข้อมูลแบบเต็ม) ประมาณ 15GB สคีมาฐานข้อมูลมีดังนี้ประมาณ 2 ล้านแถว: rt4 = # \ d + ไฟล์แนบ ตาราง "public.attachments" คอลัมน์ | ประเภท | ตัวดัดแปลง | จัดเก็บข้อมูล | ลักษณะ ----------------- + ----------------------------- + - -------------------------------------------------- ------ ---------- + + ------------- id | จำนวนเต็ม ไม่ใช่ null ค่าเริ่มต้น nextval …

1
คำนวณ MATCH () เทียบกับ () คะแนนจาก QUERY QUERY ที่ไม่ใช่สำหรับแต่ละตาราง
ฉันพยายามที่จะมีคะแนนสำหรับส่วนทั้งหมดของคำสั่ง SELECT SELECT *,MATCH(`result`) AGAINST('keyword') as `score` FROM `table1` WHERE MATCH(`result`) AGAINST('keyword') UNION SELECT *,MATCH(`content`) AGAINST('keyword') as `score` FROM `table2` WHERE MATCH(`content`) AGAINST('keyword') UNION SELECT *,MATCH(`text`) AGAINST('keyword') as `score` FROM `table3` WHERE MATCH(`text`) AGAINST('keyword') ในกรณีดังกล่าวคะแนนต่อตาราง + พวกเขาจะไม่เรียงตามความเกี่ยวข้อง แต่ฉันลองวิธีนี้ซึ่งใช้งานได้ แต่ไม่คุ้มค่ากับการผลิต SELECT * FROM ( SELECT *,MATCH(`result`) AGAINST('keyword') as `score` FROM `table1` …

1
ทำไม full-text-search จึงส่งกลับแถวน้อยกว่า LIKE
ฉันไม่ได้รับการค้นหาแบบข้อความเต็มตามที่ฉันต้องการและฉันไม่เข้าใจความแตกต่างในรายการผลลัพธ์ คำสั่งตัวอย่าง: SELECT `meldungstext` FROM `artikel` WHERE `meldungstext` LIKE '%punkt%' ผลตอบแทน 92 แถว ฉันได้รับแถวที่มีการจับคู่เช่น "Punkten", "Zwei-Punkte-Vorsprung" และ "Treffpunkt" ในคอลัมน์ meldungstext ฉันตั้งค่าดัชนีข้อความเต็มในคอลัมน์ "meldungstext" และลองทำสิ่งนี้: SELECT `meldungstext` FROM `artikel` WHERE MATCH (`meldungstext`) AGAINST ('*punkt*') ผลตอบแทน 8 แถวเท่านั้น ฉันได้รับแถวที่มีการจับคู่กับ "Punkt" เท่านั้นหรือคำที่ฉันคิดว่าเป็น "Punkt" เช่นเดียวกับใน "i-Punkt" ฉันลองโหมดบูลีน: SELECT `meldungstext` FROM `artikel` WHERE MATCH (`meldungstext`) AGAINST …

2
วิธีที่ดีกว่าสำหรับ“ LIKE หรือ LIKE หรือ LIKE หรือ LIKE หรือ LIKE”
ในคำถามนี้เขามีปัญหาเช่นเดียวกับฉัน ฉันต้องการบางสิ่งเช่น: select * from blablabla where product like '%rock%' or like '%paper%' or like '%scisor%' or like '%car%' or like '%pasta%' นี่น่าเกลียดและไม่ได้ใช้ดัชนี .. ในกรณีนี้นี่เป็นวิธีเดียวที่จะทำเช่นนี้ (เพื่อเลือกหลายคำภายในสตริง) หรือฉันควรใช้ FULLTEXT? ตามที่ฉันเข้าใจด้วยข้อความเต็มฉันสามารถเลือกหลายคำภายในสตริง คำถามนี้พูดถึงเกี่ยวกับข้อความเต็มเช่นกัน

1
ข้อความแบบเต็ม: FT_MASTER_MERGE จำนวนมากรอสถานะ SUSPENDED หลังจากสร้างดัชนีข้อความแบบเต็มหลายรายการ (เซิร์ฟเวอร์หยุดทำงาน)
เราทำการทดสอบบน SQL Server 2014 เมื่อเรามี 10 ฐานข้อมูล 100 schema ที่แตกต่างกันในแต่ละฐานข้อมูล 10 ตาราง (~ 50 แถว) ตารางเล็ก ๆ ในแต่ละ schema (ดังนั้น 10K ตารางทั้งหมด) และเราสร้างดัชนีข้อความทั้งหมดในสิ่งเหล่านี้ ตารางในฐานข้อมูลเหล่านี้ทั้งหมดพร้อมกัน ในหลายนาทีเราพบว่า SQL Server หยุดการยอมรับการเชื่อมต่อใด ๆ (ยกเว้นADMIN:.การเชื่อมต่อ) หากเรารีสตาร์ทเซิร์ฟเวอร์เราสามารถเชื่อมต่อได้ แต่ในบางครั้งมันก็หยุดทำงานอีกครั้ง หลังจากการตรวจสอบบางอย่างเราพบว่ามันเกิดจากการบริโภคกระทู้ทำงานทั้งหมดdm_os_tasksและdm_os_waiting_tasksแสดงให้เราเห็นว่ามีสถานะFT_MASTER_MERGEรออยู่SUSPENDEDมากมาย เรา googled ว่า "ข้อความแบบเต็มกำลังรอการดำเนินการผสานหลัก" แต่ไม่พบข้อมูลที่แท้จริงอีกต่อไป เราลองกำหนดค่าแคตตาล็อกข้อความเต็มรูปแบบที่แตกต่างกัน: หนึ่งแคตตาล็อกต่อ DB, หนึ่งแค็ตตาล็อกต่อสคีมา, หนึ่งแคตตาล็อกต่อดัชนี อย่างไรก็ตามเซิร์ฟเวอร์หยุดทำงานกับงานที่ถูกระงับเหล่านี้ทั้งหมด อะไรคือสาเหตุของการรอคอยสิ่งนี้สามารถแก้ไข / บรรเทาได้อย่างไร และอะไรคือวิธีที่แนะนำในการเปิดใช้งานข้อความแบบเต็มบนตารางจำนวนมากเช่นนี้

2
คุณสมบัติเอกสาร SQL Server Filetable
ฉันใช้ SQL Server 2012 FileTableในการจัดเก็บเอกสารและค้นหาพวกเขาด้วยความหมายของการค้นหา ฉันสงสัยว่ามีวิธีที่จะแสดงรายการคุณสมบัติของเอกสารทั้งหมด (ข้อมูลเมตา) หรือไม่ มีวิธีให้ดัชนีการค้นหาแบบข้อความและค้นหาคุณสมบัติเอกสาร ฉันสามารถสร้างรายการคุณสมบัติดัชนีเซิร์ฟเวอร์ SQL ด้วยคำสั่งต่อไปนี้: SELECT * FROM sys.registered_search_properties; ฉันยังสามารถขยายรายการนี้กับ SQL หรือใช้โปรแกรม สิ่งที่ฉันไม่พบเป็นวิธีการแสดงรายการข้อมูลจริง สิ่งที่ฉันกำลังมองหาคือรายการที่ชอบ: ผู้แต่ง : Ruud van de Beeten หัวข้อ : เอกสารทดสอบ คุณสมบัติที่กำหนดเอง : ค่าที่กำหนดเอง ใครช่วยชี้ฉันในทิศทางที่ถูกต้องได้ไหม แก้ไข : Bob Beauchemin สร้างตั๋วอธิบายปัญหาของฉัน เนื่องจาก DMV ไม่ได้แสดงรายการค่าคุณสมบัติฉันไม่สามารถใช้ในโครงการของฉันได้ ฉันลงเอยด้วยการใช้ C # เพื่อแสดงรายการคุณสมบัติที่กำหนดเองด้วยวัตถุOleDocumentProperties วัตถุนี้สามารถอ่านคุณสมบัติจากเอกสาร Office ฉันจะดูคำถามนี้ต่อไปโดยหวังว่าจะได้ทางออกที่ดีกว่า
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.