- org
- compassframework
- sample
- example
alias.cmd.xml
CompassExample.java
Phrase.cpm.xml
Phrase.java
compass.cfg.xml
============================
alias.cmd.xml
<?xml version="1.0"?>
<!DOCTYPE compass-core-meta-data PUBLIC
"-//Compass/Compass Core Meta Data DTD 2.2//EN"
"http://www.compass-project.org/dtd/compass-core-meta-data-2.2.dtd">
<compass-core-meta-data>
<meta-data-group id="example" displayName="Example Meta Data">
<description>Example Meta Data</description>
<uri>http://compass/example</uri>
<alias id="phrase" displayName="Phrase">
<description>phrase alias</description>
<uri>http://compass/example/phrase</uri>
<name>phase</name>
</alias>
<meta-data id="author" displayName="Author">
<description>Author alias</description>
<uri>http://compass/example/author</uri>
<name>author</name>
</meta-data>
<meta-data id="text" displayName="Text">
<description>Text alias</description>
<uri>http://compass/example/text</uri>
<name>text</name>
</meta-data>
</meta-data-group>
</compass-core-meta-data>
====================================================
CompassExample.java
package org.compass.sample.example;
import org.compass.core.Compass;
import org.compass.core.CompassHits;
import org.compass.core.CompassSession;
import org.compass.core.CompassTransaction;
import org.compass.core.config.CompassConfiguration;
public class CompassExample {
private Compass compass;
public static void main(String[] args) {
new CompassExample().process();
}
private void process() {
CompassConfiguration config = new CompassConfiguration().configure();
compass = config.buildCompass();
compass.getSearchEngineIndexManager().deleteIndex();
compass.getSearchEngineIndexManager().createIndex();
createIndex();
search("mule AND crazy");
search("you");
}
CompassSession session = null;
private void createIndex() {
session= compass.openSession();
CompassTransaction tx = session.beginTransaction();
Phrase phrase = new Phrase();
phrase.setAuthor("Joe");
phrase.setText("I don't think it's nice you laughing. " +
"You see my mule don't like people laughing. " +
"He gets the crazy idea you're laughing at him. " +
"Now if you apologize like I know you're going to, " +
"I might convince him that you really didn't mean it...");
phrase.setId(new Long(1));
session.save(phrase);
tx.commit();
// session.close();
}
private void search(String query) {
// CompassSession session = compass.openSession();
if (session.isClosed()){
CompassConfiguration config = new CompassConfiguration().configure();
compass = config.buildCompass();
session= compass.openSession();
}
CompassTransaction tx = session.beginTransaction();
CompassHits hits =session.find( query ) ;
session.find(query);
System.out.println("search() - Found " + hits.getLength() + " hits for \"" + query + "\"");
for(int i = 0; i < hits.getLength(); i++) {
print(hits, i);
}
hits.close();
tx.commit();
session.close();
compass.close();
}
private void print(CompassHits hits, int hitNumber) {
Phrase value = (Phrase) hits.data(hitNumber);
System.out.println("print() - Phrase by " + value.getAuthor() + ": " + value.getText());
}
}
=====================================
Phrase.cpm.xml
<?xml version="1.0"?>
<!DOCTYPE compass-core-mapping PUBLIC
"-//Compass/Compass Core Mapping DTD 2.2//EN"
"http://www.compass-project.org/dtd/compass-core-mapping-2.2.dtd">
<compass-core-mapping package="org.compass.sample.example">
<class name="Phrase" alias="${example.phrase}">
<id name="id"/>
<property name="author">
<meta-data>${example.author}</meta-data>
</property>
<property name="text">
<meta-data>${example.text}</meta-data>
</property>
</class>
</compass-core-mapping>
==========================================
Phrase.java
package org.compass.sample.example;
public class Phrase {
private Long id;
private String author;
private String text;
public Phrase() {};
/**
* @return author
*/
public String getAuthor() {
return author;
}
/**
* @param author 要设置的 author
*/
public void setAuthor(String author) {
this.author = author;
}
/**
* @return id
*/
public Long getId() {
return id;
}
/**
* @param id 要设置的 id
*/
public void setId(Long id) {
this.id = id;
}
/**
* @return text
*/
public String getText() {
return text;
}
/**
* @param text 要设置的 text
*/
public void setText(String text) {
this.text = text;
}
public String toString() {
return text;
}
}
===================================================
compass.cfg.xml
<!DOCTYPE compass-core-configuration PUBLIC
"-//Compass/Compass Core Configuration DTD 2.2//EN"
"http://www.compass-project.org/dtd/compass-core-configuration-2.2.dtd">
<compass-core-configuration>
<compass name="default">
<setting name="compass.engine.connection">target</setting>
<meta-data resource="org/compass/sample/example/alias.cmd.xml" />
<mapping resource="org/compass/sample/example/Phrase.cpm.xml" />
</compass>
</compass-core-configuration>