เกี่ยวกับ solr.RemoveDuplicatesTokenFilterFactory

39 views
Skip to first unread message

Bczoffyou Chun

unread,
Jul 30, 2014, 2:54:08 AM7/30/14
to solr-user...@googlegroups.com
สอบถามหน่อยนะครับ
คือว่า ผมต้องการตัดคำซ้ำในข้อความนี้ 
เครื่องวัดองศา วัดมุมวัดระดับ เครื่องวัดมุม
หรือ ข้อความนี้ 
love love away so far far

และใน schema ผมก็ใส่ filter 
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>

ดังนี้ 

<fieldType name="text_icu" class="solr.TextField" positionIncrementGap="100">
      <analyzer>
        <tokenizer class="solr.ICUTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_th.txt" />
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
      </analyzer>
    </fieldType>

เข้าไปด้วย แต่มันก็ยังตัดคำซ้ำให้ไม่ได้ รบกวนแนะนำด้วยครับ

ขอบคุณครับ
ราชันย์

Pairote Leelaphattarakij

unread,
Aug 8, 2014, 12:27:04 AM8/8/14
to solr-user...@googlegroups.com
การทำงานของ RemoveDuplicateTokensFilter นั้นจะพิจารณาว่าคำหรือ token ไหนที่มี "ความเหมือนกัน" จาก
  1) termText (คือข้อความเหมือนกัน) กับ
  2) อยู่ที่ตำแหน่งเดียวกัน (ดูจาก positionIncrement)
ดังนั้นคำที่เขียนเหมือนกันแต่อยู่คนละตำแหน่งจึงไม่ได้ถูก remove ออกครับ ถ้าต้องการ remove คำซ้ำออกโดยไม่สนใจตำแหน่ง จะต้องใช้ PositionFilterFactory เพื่อ set ให้ positionIncrement มีค่าเท่ากัน แล้วจึงใช้ RemoveDuplicateTokensFilterFactory ต่อครับ

Bczoffyou Chun

unread,
Aug 25, 2014, 11:15:51 AM8/25/14
to solr-user...@googlegroups.com
ขอบคุณมาก ๆ เลยครับ เด๋วผมจะลองเอาไปปรับใช้ดูตามคำแนะนำครับ
Reply all
Reply to author
Forward
0 new messages