Score:1

เป็นไปได้ไหมที่จะใช้แบบสอบถามย่อยในแบบสอบถามเอนทิตี?

ธง ai

ฉันจะเพิ่มเงื่อนไขในการสืบค้นเอนทิตี Drupal 9 โดยใช้การสืบค้นเอนทิตีอื่นในเอนทิตีประเภทอื่นได้อย่างไร

ฉันจะอธิบายคำถามโดยอธิบายกรณีการใช้งานเฉพาะหนึ่งกรณี แม้ว่าฉันไม่คิดว่าการคิดกรณีการใช้งานที่เป็นไปได้จำนวนหนึ่งๆ จะไม่ใช่เรื่องยาก

แอปพลิเคชันสำหรับกรณีการใช้งานนี้ติดตามบทความในวรรณกรรมทางการแพทย์ที่ตีพิมพ์ บทความจะแสดงด้วยประเภทเอนทิตีแบบกำหนดเองซึ่งจะติดตามเมื่อนำเข้ามาในระบบ ได้รับข้อความทั้งหมดของบทความหรือไม่ หัวข้อใดถูกกำหนดให้กับบทความรอบการตรวจทาน เมื่อใดและในวารสารใด เผยแพร่และข้อมูลอื่น ๆ อีกมากมาย

มีเอนทิตีประเภทที่สองที่กำหนดเองเพื่อแสดงชุดงาน ("ชุดงาน") ของบทความที่ได้รับมอบหมายสำหรับการตรวจทาน การติดตามเมื่อมีการกำหนดชุดงาน สำหรับหัวข้อใด และผู้เชี่ยวชาญด้านมะเร็งวิทยาคนใด ตลอดจนผลลัพธ์ของการตรวจทานเหล่านั้นเป็นอย่างไร บทความสามารถกำหนดให้กับชุดการตรวจทานได้หลายชุด โดยแต่ละชุดมีผู้ตรวจทานที่ได้รับมอบหมายหลายคน และชุดการตรวจทานแต่ละชุดสามารถขอการตรวจทานสำหรับบทความจำนวนเท่าใดก็ได้

โมดูลการค้นหาสำหรับแอปพลิเคชันนี้มีข้อกำหนดให้สามารถค้นหาบทความตามเกณฑ์ต่างๆ มากมาย ซึ่งส่วนใหญ่สามารถใช้ได้โดยการตรวจสอบ บทความ เอนทิตี แต่บางส่วนสามารถนำไปใช้ได้โดยดูที่ค่าใน แพ็คเก็ต เอนทิตี การค้นหาตัวอย่างอาจขอค้นหาบทความทั้งหมดที่ตีพิมพ์ภายในสิบสองเดือนที่ผ่านมาในวารสาร J และมอบหมายให้ผู้ตรวจทาน R ตรวจสอบ

ใน CMS ที่เหมาะกับการทำงานโดยตรงกับตาราง SQL เชิงสัมพันธ์ มันจะตรงไปตรงมามากที่จะสนับสนุนการค้นหาดังกล่าวโดยใช้การรวมตารางสองสามตัว แต่ Drupal ทำให้วิธีการนั้นน่าสนใจน้อยลง เนื่องจากเราไม่มีเอกสารรับประกันว่าแบบแผนการตั้งชื่อตารางและคอลัมน์ภายใต้เอนทิตีจะไม่เปลี่ยนแปลง

ฉันสามารถสร้างและดำเนินการค้นหาเอนทิตีสองรายการแยกกัน และใช้ผลลัพธ์ของรายการที่สองเพื่อแยกผลลัพธ์ที่ส่งกลับโดยแบบสอบถามแรกซึ่งไม่ปรากฏในผลลัพธ์ของรายการที่สองด้วย แต่ข้อเสียของแนวทางนี้คือความจริงที่ว่ามันทำลายกลไกการเพจของ Drupal

ฉันสามารถพยายามเลียนแบบสิ่งที่ DBMS จะทำได้อย่างมีประสิทธิภาพมากขึ้นโดยการป้อน ID เอนทิตีที่ส่งกลับโดยแบบสอบถามที่สองเป็นเงื่อนไขในแบบสอบถามแรก แต่ใครจะรู้ได้ว่าขีดจำกัดภายในที่อาจพบเมื่อผลลัพธ์ของแบบสอบถามที่สองเป็นอย่างไร ใหญ่?

ฉันสามารถใช้ kludge เพื่อทำให้ข้อมูลเป็นปกติ โดยจัดเก็บการอ้างอิงเอนทิตีจาก บทความ เอนทิตีกลับไปที่ แพ็คเก็ต เอนทิตีซึ่งจะชี้กลับไปที่ บทความ เอนทิตี แต่เราทุกคนทราบปัญหาของการพยายามเก็บข้อมูลเดียวกันในหลาย ๆ ที่ให้ตรงกัน

ถ้า ทั้งหมด การค้นหามีไว้สำหรับบทความที่ได้รับการตรวจสอบ ฉันสามารถเปลี่ยนสิ่งต่างๆ และใช้แบบสอบถามเอนทิตีบน แพ็คเก็ต พิมพ์ตามการอ้างอิงถึง บทความ เอนทิตีสำหรับเกณฑ์อื่น ๆ ที่จำเป็นต้องทดสอบ แต่การค้นหาส่วนใหญ่มีไว้เพื่อค้นหาบทความไม่ว่าจะได้รับมอบหมายให้ตรวจสอบหรือไม่ก็ตาม ดังนั้นสำหรับเส้นทางนี้ ฉันต้องใช้ตรรกะการค้นหาสองชุดที่แยกจากกันแบบคู่ขนาน ชุดหนึ่งสำหรับการค้นหาที่เกี่ยวข้องกับการกำหนดให้ตรวจทานแพ็กเก็ต และชุดที่สองสำหรับการค้นหาที่ไม่สนใจเกี่ยวกับการกำหนดให้ตรวจทาน และวิธีการนี้ยังคงไม่สามารถระบุการค้นหาอย่างชัดแจ้งสำหรับบทความที่มี ไม่ ได้รับมอบหมายให้ตรวจสอบ และโปรดจำไว้ว่า ฉันกำลังทำให้ตัวอย่างกรณีการใช้งานนี้เรียบง่ายโดยจำกัดไว้เพียงสองประเภทเอนทิตี

Googling (และค้นหาฟอรัมนี้) คอยเปลี่ยนเส้นทางให้ฉันไปหาข้อมูลเกี่ยวกับการใช้ API การสืบค้นฐานข้อมูลที่อยู่ใต้ฐานข้อมูลแทนระบบการค้นหาเอนทิตี อย่างน้อยก็ด้วยคำค้นหาที่ฉันใช้อยู่

มีวิธีใช้เคียวรีย่อย (หรือดีกว่า เข้าร่วมกับเอนทิตีประเภทอื่น) ใน API เคียวรีเอนทิตีหรือไม่ ถ้าไม่ มีโอกาสที่จะสนับสนุนฟังก์ชันดังกล่าวภายใต้การสนทนาใน Drupal Valhalla หรือไม่

cn flag
สำหรับการค้นหาที่ซับซ้อนที่เกี่ยวข้องกับเอนทิตีหลายประเภท [Search API](https://www.drupal.org/project/search_api) และ [Search API Solr](https://www.drupal.org/project/search_api_solr) คือ โซลูชันที่ยอดเยี่ยมที่ให้คุณควบคุมการสร้างดัชนีได้อย่างเต็มที่ตามที่คุณต้องการ แน่นอน ข้อเสียอย่างมากของสิ่งนี้คือคุณต้องตั้งค่า Solr ด้วย
ai flag
ขอบคุณ @แพทริค ฉันจะลองดู
in flag
Search API เป็นคำแนะนำที่ดี คุณจะทำงานกับมุมมอง แทนที่จะเป็นคิวรีเอนทิตี คุณสามารถเสริมโครงการของคุณเพิ่มเติมได้โดยใช้กลุ่มเอนทิตีและช่องอ้างอิงเอนทิตีฉันไม่เห็นคุณพูดถึงว่าคุณเคยทำเช่นนั้นหรือไม่ แต่อาจเป็นประโยชน์ในการเริ่มต้นด้วยการกำหนดเอนทิตีทั้งหมดของคุณเป็นบันเดิลของประเภทเอนทิตีเดียว จากนั้นมุมมองของคุณจะสามารถเจาะลึกประเภทบันเดิลทั้งหมดได้ในคราวเดียว ช่องอ้างอิงเอนทิตีจะอนุญาตให้สร้างความสัมพันธ์ที่ชัดเจนระหว่างเอนทิตี ใช้จำนวนสมาชิกของฟิลด์เพื่อสร้างความสัมพันธ์แบบหนึ่งต่อหนึ่งหรือหนึ่งต่อกลุ่ม

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา