dspace

หน้านี้ลอง ลองดู ลำดับชั้นเกี่ยวกับ Telecommunication เวลาจะลองก็เข้าไปใน subject-search ซึ่งในเครื่องผมคือ http://localhost:8080/dspace/subject-search



edit @ 2007/03/16 12:53:03

เริ่มจากลบ Lucene ออกจาก dspace ก่อนเลย

rm -f lib/lucene*

แลัว copy lucene จาก nightly build มาใส่แทน

lucene-analyzers-nightly.jar lucene-core-nightly.jar

จากนั้นก็ apply patch นี้

diff -Nuar dspace-1.4.1-source.orig/src/org/dspace/search/DSAnalyzer.java dspace-1.4.1-source.thai/src/org/dspace/search/DSAnalyzer.java
--- dspace-1.4.1-source.orig/src/org/dspace/search/DSAnalyzer.java 2005-04-20 21:23:23.000000000 +0700
+++ dspace-1.4.1-source.thai/src/org/dspace/search/DSAnalyzer.java 2007-03-08 21:50:58.000000000 +0700
@@ -48,50 +48,14 @@
import org.apache.lucene.analysis.StopFilter;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.standard.StandardFilter;
+import org.apache.lucene.analysis.th.ThaiAnalyzer;
+

/**
* Custom Lucene Analyzer that combines the standard filter, lowercase filter,
* stemming and stopword filters.
*/
-public class DSAnalyzer extends Analyzer
+public class DSAnalyzer extends ThaiAnalyzer
{
- /*
- * An array containing some common words that are not usually useful for
- * searching.
- */
- private static final String[] STOP_WORDS =
- {
-
- // new stopwords (per MargretB)
- "a", "am", "and", "are", "as", "at", "be", "but", "by", "for",
- "if", "in", "into", "is", "it", "no", "not", "of", "on", "or",
- "the", "to", "was"
- // old stopwords (Lucene default)
- /*
- * "a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in",
- * "into", "is", "it", "no", "not", "of", "on", "or", "s", "such", "t",
- * "that", "the", "their","then", "there","these", "they", "this", "to",
- * "was", "will", "with"
- */
- };
-
- /*
- * Stop table
- */
- final static private Set stopSet = StopFilter.makeStopSet(STOP_WORDS);
-
- /*
- * Create a token stream for this analyzer.
- */
- public final TokenStream tokenStream(String fieldName, final Reader reader)
- {
- TokenStream result = new DSTokenizer(reader);
-
- result = new StandardFilter(result);
- result = new LowerCaseFilter(result);
- result = new StopFilter(result, stopSet);
- result = new PorterStemFilter(result);

- return result;
- }
}

แล้วก็ build ใหม่

ant -Dconfig=/dspace/config/dspace.cfg update

เอา .war ไปวางก็ใช้ได้

 

สิ่งที่ patch ไปมันแบบสกปรกๆ สักว่าให้เสร็จอะนะ แต่คงเป็นการกุยกรุยทางไปสู่สิ่งที่ดีๆกว่าได้

ป.ล. เวลาพูดกับผมขอให้ออกเสียง ร. ชัดๆด้วยนะครับ ไม่งั้นผมจำมาเขียนผิดนะ :-P (ล้อเล่นๆ)


edit @ 2007/03/14 11:55:24

ด่านแรก DSpace

posted on 28 Feb 2007 17:51 by veer

DSpace เป็นโปรแกรมที่เอาไว้จัดเก็บสมบัติดิจิทอลทั้งหลาย เช่น เอกสาร วิดีโอ รูปภาพ ฯลฯ ซึ่งอาจจะเก็บอยู่ในรูปแบบไฟล์แบบพีดีเอฟ (PDF) เจเป็ก (JPEG) หรืออะไรก็ว่ากันไป โดยทั่วไปแล้วก็เหมาะสำหรับนำมาเก็บเอกสารในเล็บ ผมก็เลยจะเอามาลองใช้ดู พอดีพี่เอ็กซ์ (รู้จักมะว่าเอ็กซ์ไหน?) เคยใช้มากก่อนแล้วด้วย มีคนติวก็ดีไปอย่าง

กว่าจะลองได้ผมอ่านเอกสารอยู่หลายฉบับ ทั้งวิธีลงบน Ubuntu 6.06 OSX และ Mac OS X(อาจจะงงๆว่าต่างจาก OS X อย่างไร :-P) แต่ว่าผมลงบน Debian 3.1 นะ

 

  1. ทีแรกผมก็เริ่มจาก add user ก่อนเลย
    sudo useradd -m dspace
  2. ลง PostgreSQL (จริงๆ ก่อนหน้านี้ลงไว้แล้วแต่ก็เขียนเพื่อความครบถ้วน) ผมก็ลงแหลกๆหละครับอะไรที่ชื่อ postgresql ทั้งหลาย ก็ aptitude install postgresql postgresql-client postgresql-contrib postgresql-dev postgresql-common เอาหมด ลงไปแล้วก็เป็นเวอร์ชัน 7.4 :-)
  3. เข้าไปตั้งค่านิดหน่อยที่ /etc/postgresql/7.4/main/postgresql.conf เติม tcpip_socket = true (ไม่งั้นจะมีปัญหาตอนต่อ dspace)
  4. ทีนี้ก็มา add database (นี่ลองวิธีของ Ubuntu มาเต็มๆ)
    sudo -u postgres createuser -U postgres -d -A -P dspace
    sudo -u dspace createdb -U dspace -E UNICODE dspace
  5. ลง JDK ตอนนี้ผมใช้ JDK 5 (ยังกล้าใช้ JDK 6) ก็ลงไว้ที่ /usr/local/jdk เสร็จแล้วก็ set path ไปด้วยเลย (แบบ global เลย ก็แก้ที่ /etc/bash.bashrc )
    export PATH="/usr/local/jdk/bin:$PATH"
    export JAVA_HOME="/usr/local/jdk"
  6. เปลี่ยนไปใช้ user dspace
    sudo su - dspace
  7. ดาวโหลด dspace 1.4.1 มาลง จาก sourceforge เราก็จะได้ dspace-1.4.1-source.tar.gz (ควรจะอยู่ใน /home/dspace ) มาก็จัดแจงแตกไฟล์ออกมาเลย
    tar xzvf dspace-1.4.1-source.tar.gz
  8. ขั้นต่อไปก็โหลด JDBC driver มาลง   ผมใช้ตัวนี้ โหลดมาแล้ว ย้ายไปเป็น /home/dspace/dspace-1.4.1-source/lib/postgresql.jar
    mv pg74.216.jdbc3.jar /home/dspace/dspace-1.4.1-source/lib/postgresql.jar
  9. ติดตั้ง ant ก่อน โดยนำมาได้จาก http://ant.apache.org/ ผมเอามาใส่ไว้ใน /usr/local/ant แล้ว set path ไปที่ /usr/local/ant/bin ก็เป็นอันใช้ได้
  10. แก้ไขค่าใน /home/dspace/dspace-1.4.1-source/config/dspace.cfg ให้ตรงกับของเครื่องเรา
  11. เข้าไปที่ /home/dspace/dspace-1.4.1-source แล้วก็จะ compile dspace พร้อม นำข้อมูลบางส่วนใส่ใน database แล้ว
    cd  /home/dspace/dspace-1.4.1-source
    ant fresh_install
    ถ้า ant_fresh_install มากกว่า 1 ครั้ง มันจะ error ด้วยนะ เพราะนำเข้าข้อมูลซ้ำกันไม่ได้
  12. ลง Apache Tomcat ผมลงไว้ใน /home/dspace/tomcat เลย แก้ config นิดหน่อยในไฟล์ conf/server.xml เพิ่ม URIEncoding="UTF-8" เข้าไปใน ถ้าอยากเปลี่ยน port ก็เปลี่ยนตอนนี้หละ
  13. ขน .war ใน dspace มาใส่ใน tomcat
    cp /home/dspace/dspace-1.4.1-source/build/*.war /home/dspace/tomcat/webapps/
  14. สร้าง admin user ของ dspace
    cd /dspace/bin
    ./create-administrator
    แล้วกรอกๆ ตามไป
  15. start tomcat โดย
    cd /home/dspace/tomcat/bin
    ./startup.sh
  16. ลองเข้าเว็บที่ http://localhost:8080/dspace
แล้วผมก็พึ่งทำได้แค่นี้หละ ถ้ามีมั่วบ้างผิดบ้างก็ขออภัย


edit @ 2007/02/28 18:22:27


edit @ 2007/02/28 21:57:53
edit @ 2007/03/04 17:09:21