ผลการค้นหาและผลลัพธ์ด้านไม่ตรงกัน

ฉันกำลังค้นหา phrase_prefix ด้วยคำว่า 'วิศวกร' และมีการนับ 36 ครั้งสำหรับคำว่า 'วิศวกรรมศาสตร์' ในด้าน 'ทักษะ' ต่อไป ฉันจะใช้ term filter บนฟิลด์ด้านนั้นสำหรับ 'วิศวกรรมศาสตร์' และในผลลัพธ์ที่กรองใหม่ ขณะนี้การนับสำหรับ 'วิศวกรรม' ในด้านนั้นคือ 42

ข้อความค้นหาที่กรองแล้วจะส่งกลับผลลัพธ์ 42 รายการ และแต่ละรายการจะตรงกับแง่มุม กล่าวคือ ทั้งหมดมี 'วิศวกรรม' เป็นทักษะ

ดังนั้นฉันคาดว่าข้อความค้นหาที่ไม่ได้กรองจะมีการนับ 42 สำหรับคำว่า 'วิศวกรรม' ในด้าน 'ทักษะ' แต่อย่างที่ฉันกล่าวไว้ข้างต้นมันเป็นเพียง 36

นี่คือการแมปและการค้นหา https://gist.github.com/santiago/a249418e5bf7531ead85

ฉันพลาดอะไรไปที่นี่?

ขอบคุณ

พีดี. ผมใช้ 0.90.5


person sofrito    schedule 10.01.2014    source แหล่งที่มา
comment
ลองใช้ส่วนสำคัญนี้: gist.github.com/eire1130/44d18734503267c835b9 เรียกใช้สองครั้ง หนึ่งครั้งด้วย กรองบิตและครั้งเดียวโดยไม่มี   -  person James R    schedule 10.01.2014
comment
ผลลัพธ์เดียวกัน หากไม่มีตัวกรอง ฉันเห็นจำนวน 36 รายการสำหรับวิศวกรรม ในขณะที่การเพิ่มตัวกรองจะแสดง 42   -  person sofrito    schedule 11.01.2014
comment
ต่อไปนี้เป็นสิ่งที่แสดงให้เห็นสถานการณ์ได้ดีขึ้น: gist.github.com/santiago/ee65c9da0c6a5270dee0 ข้อความค้นหาส่งคืน ผลลัพธ์ 6 รายการ ให้ดูว่าทักษะทั้ง 6 ทักษะมีอยู่สำหรับ 'Microsoft Word', 'Microsoft Office' และ 'English' แต่ดูจำนวนคำเหล่านี้ในแง่มุมต่างๆ 'Microsoft Word' (5), 'Microsoft Office' (5) และ 'ภาษาอังกฤษ' (3)   -  person sofrito    schedule 11.01.2014
comment
จะเกิดอะไรขึ้นถ้าคุณเพิ่มขนาด = 50 เป็นอะไรที่ใหญ่กว่ามากเช่น size = 500   -  person mconlin    schedule 11.01.2014


คำตอบ (1)


ใน 0.90.5 คุณจะได้รับผลลัพธ์ตามที่คุณคาดหวังโดยการเพิ่มขนาดของรายการ facet:

  "facets": {
    "skills": {
      "terms": {
        "field": "skills",
        "size": 50
      }
    },

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

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

ใน 0.9.6+ คุณสามารถเพิ่มพารามิเตอร์ shard_size ลงใน facet ได้ ซึ่งจะบอกจำนวนคำที่จะขอจากแต่ละส่วน ก่อนที่จะรวมผลลัพธ์ไว้ในรายการเดียว

person kielni    schedule 13.01.2014