diff --git a/project/src/zbf/search/academic/publication/PublicationIndex.java b/project/src/zbf/search/academic/publication/PublicationIndex.java new file mode 100644 index 0000000..b41c55a --- /dev/null +++ b/project/src/zbf/search/academic/publication/PublicationIndex.java @@ -0,0 +1,81 @@ +package zbf.search.academic.publication; + +import java.io.File; +import java.io.IOException; + +import org.apache.lucene.document.Document; +import org.apache.lucene.document.Field; +import org.apache.lucene.document.Field.Index; +import org.apache.lucene.document.Field.Store; +import org.apache.lucene.index.IndexWriter; +import org.apache.lucene.index.IndexWriterConfig; +import org.apache.lucene.index.IndexWriterConfig.OpenMode; +import org.apache.lucene.store.FSDirectory; +import org.apache.lucene.util.Version; +import org.wltea.analyzer.lucene.IKAnalyzer; + +import zbf.search.academic.publication.PublicationIndex; +import zbf.search.academic.publication.PublicationModel; +import zbf.search.util.StdOutUtil; + +import com.mongodb.BasicDBList; +import com.mongodb.DB; +import com.mongodb.DBCollection; +import com.mongodb.DBCursor; +import com.mongodb.DBObject; +import com.mongodb.MongoClient; + +public class PublicationIndex { + private String indexPath; + private IKAnalyzer analyzer = new IKAnalyzer(true); + + public PublicationIndex(String indexPath) { + this.indexPath = indexPath; + } + + public void build() throws IOException { + FSDirectory directory = null; + IndexWriterConfig conf = null; + IndexWriter writer = null; + directory = FSDirectory.open(new File(indexPath)); + conf = new IndexWriterConfig(Version.LUCENE_36, analyzer); + conf.setOpenMode(OpenMode.CREATE_OR_APPEND); + writer = new IndexWriter(directory, conf); + // data + MongoClient mongoClient = new MongoClient("localhost", 30000); + DB db = mongoClient.getDB("academic"); + DBCollection coll = db.getCollection("publications"); + DBCursor cursor = coll.find(); + try { + while (cursor.hasNext()) { + PublicationModel model = new PublicationModel(); + DBObject obj = cursor.next(); + model.setTitle((String) obj.get("title")); + model.setPub_abstract((String) obj.get("abstract")); + model.setConference((String) obj.get("conference")); + model.setView_url((String) obj.get("view_url")); + + BasicDBList list = (BasicDBList) obj.get("author"); + model.setAuthor(list.toString()); + + Document doc = new Document(); + doc.add(new Field("title", model.getTitle(), Store.YES, Index.ANALYZED)); + doc.add(new Field("pub_abstract", model.getPub_abstract(), Store.YES, Index.ANALYZED)); + doc.add(new Field("conference", model.getConference(), Store.YES, Index.ANALYZED)); + doc.add(new Field("view_url", model.getView_url(), Store.YES, Index.ANALYZED)); + doc.add(new Field("author", model.getAuthor(), Store.YES, Index.ANALYZED)); + writer.addDocument(doc); + StdOutUtil.out(model.getTitle()); + } + } finally { + cursor.close(); + } + writer.close(); + } + + public static void main(String[] args) throws IOException { + PublicationIndex pi = new PublicationIndex("E://softs2/apache-solr-3.6.2/example/multicore/core1/data/index"); + pi.build(); + } +} + diff --git a/project/src/zbf/search/academic/publication/PublicationModel.java b/project/src/zbf/search/academic/publication/PublicationModel.java new file mode 100644 index 0000000..1b70663 --- /dev/null +++ b/project/src/zbf/search/academic/publication/PublicationModel.java @@ -0,0 +1,44 @@ +package zbf.search.academic.publication; + +public class PublicationModel { + private String title = ""; + private String author = ""; + private String pub_abstract = ""; + private String conference = ""; + private String view_url = ""; + public String getTitle() { + return title; + } + public void setTitle(String title) { + this.title = title; + } + public String getAuthor() { + return author; + } + public void setAuthor(String author) { + this.author = author; + } + public String getPub_abstract() { + return pub_abstract; + } + public void setPub_abstract(String pub_abstract) { + if (pub_abstract != null) + this.pub_abstract = pub_abstract; + } + public String getConference() { + return conference; + } + public void setConference(String conference) { + if (conference != null) + this.conference = conference; + } + public String getView_url() { + return view_url; + } + public void setView_url(String view_url) { + if (view_url != null) + this.view_url = view_url; + } + + +} diff --git a/project/src/zbf/search/academic/researcher/ResearcherIndex.java b/project/src/zbf/search/academic/researcher/ResearcherIndex.java new file mode 100644 index 0000000..f9fa0d0 --- /dev/null +++ b/project/src/zbf/search/academic/researcher/ResearcherIndex.java @@ -0,0 +1,80 @@ +package zbf.search.academic.researcher; + +import java.io.File; +import java.io.IOException; + +import org.apache.lucene.document.Document; +import org.apache.lucene.document.Field; +import org.apache.lucene.document.Field.Index; +import org.apache.lucene.document.Field.Store; +import org.apache.lucene.index.IndexWriter; +import org.apache.lucene.index.IndexWriterConfig; +import org.apache.lucene.index.IndexWriterConfig.OpenMode; +import org.apache.lucene.store.FSDirectory; +import org.apache.lucene.util.Version; +import org.wltea.analyzer.lucene.IKAnalyzer; + +import zbf.search.util.StdOutUtil; + +import com.mongodb.BasicDBList; +import com.mongodb.DB; +import com.mongodb.DBCollection; +import com.mongodb.DBCursor; +import com.mongodb.DBObject; +import com.mongodb.MongoClient; + +public class ResearcherIndex { + private String indexPath; + private IKAnalyzer analyzer = new IKAnalyzer(true); + + public ResearcherIndex(String indexPath) { + this.indexPath = indexPath; + } + + public void build() throws IOException { + FSDirectory directory = null; + IndexWriterConfig conf = null; + IndexWriter writer = null; + directory = FSDirectory.open(new File(indexPath)); + conf = new IndexWriterConfig(Version.LUCENE_36, analyzer); + conf.setOpenMode(OpenMode.CREATE_OR_APPEND); + writer = new IndexWriter(directory, conf); + // data + MongoClient mongoClient = new MongoClient("localhost", 30000); + DB db = mongoClient.getDB("academic"); + DBCollection coll = db.getCollection("researchers"); + DBCursor cursor = coll.find(); + try { + while (cursor.hasNext()) { + ResearcherModel model = new ResearcherModel(); + DBObject obj = cursor.next(); + model.setName((String) obj.get("name")); + model.setWorkplace((String) obj.get("workplace")); + model.setHomepage((String) obj.get("homepage")); + + BasicDBList list = (BasicDBList) obj.get("field"); + model.setField(list.toString()); + + Document doc = new Document(); + doc.add(new Field("name", model.getName(), Store.YES, Index.ANALYZED)); + doc.add(new Field("workplace", model.getWorkplace(), Store.YES, Index.ANALYZED)); + doc.add(new Field("homepage", model.getHomepage(), Store.YES, Index.ANALYZED)); + doc.add(new Field("field", model.getField(), Store.YES, Index.ANALYZED)); + writer.addDocument(doc); +// StdOutUtil.out(model.getHomepage()); + StdOutUtil.out(model.getName()); +// StdOutUtil.out(model.getWorkplace()); +// StdOutUtil.out(model.getField().toString()); + } + } finally { + cursor.close(); + } + writer.close(); + } + + public static void main(String[] args) throws IOException { + ResearcherIndex ri = new ResearcherIndex( + "E://softs2/apache-solr-3.6.2/example/multicore/core0/data/index"); + ri.build(); + } +} diff --git a/project/src/zbf/search/academic/researcher/ResearcherModel.java b/project/src/zbf/search/academic/researcher/ResearcherModel.java new file mode 100644 index 0000000..df2b67e --- /dev/null +++ b/project/src/zbf/search/academic/researcher/ResearcherModel.java @@ -0,0 +1,64 @@ +package zbf.search.academic.researcher; + +public class ResearcherModel { + private String name = ""; + private String microul = ""; + private String workplace = ""; + private String field = ""; + private String homepage = ""; + private String keywords_url = ""; + private String publications_url = ""; + private String citations_url = ""; + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getMicroul() { + return microul; + } + public void setMicroul(String microul) { + this.microul = microul; + } + public String getWorkplace() { + return workplace; + } + public void setWorkplace(String workplace) { + if (workplace != null) + this.workplace = workplace; + } + public String getField() { + return field; + } + public void setField(String field) { + this.field = field; + } + public String getHomepage() { + return homepage; + } + public void setHomepage(String homepage) { + if (homepage != null) + this.homepage = homepage; + } + public String getKeywords_url() { + return keywords_url; + } + public void setKeywords_url(String keywords_url) { + this.keywords_url = keywords_url; + } + public String getPublications_url() { + return publications_url; + } + public void setPublications_url(String publications_url) { + this.publications_url = publications_url; + } + public String getCitations_url() { + return citations_url; + } + public void setCitations_url(String citations_url) { + this.citations_url = citations_url; + } + + +} diff --git a/project/src/zbf/search/mongodb/MongoGridFS.java b/project/src/zbf/search/mongodb/MongoGridFS.java index b4b0d98..d781338 100644 --- a/project/src/zbf/search/mongodb/MongoGridFS.java +++ b/project/src/zbf/search/mongodb/MongoGridFS.java @@ -1,6 +1,5 @@ package zbf.search.mongodb; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.UnknownHostException;