[hibernate-commits] Hibernate SVN: r15347 - in search/trunk/doc: quickstart and 18 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Tue Oct 14 14:53:41 EDT 2008


Author: hardy.ferentschik
Date: 2008-10-14 14:53:41 -0400 (Tue, 14 Oct 2008)
New Revision: 15347

Added:
   search/trunk/doc/quickstart/
   search/trunk/doc/quickstart/pom.xml
   search/trunk/doc/quickstart/src/
   search/trunk/doc/quickstart/src/main/
   search/trunk/doc/quickstart/src/main/resources/
   search/trunk/doc/quickstart/src/main/resources/META-INF/
   search/trunk/doc/quickstart/src/main/resources/META-INF/maven/
   search/trunk/doc/quickstart/src/main/resources/META-INF/maven/archetype.xml
   search/trunk/doc/quickstart/src/main/resources/archetype-resources/
   search/trunk/doc/quickstart/src/main/resources/archetype-resources/pom.xml
   search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/
   search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/
   search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/java/
   search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/java/example/
   search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/java/example/Author.java
   search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/java/example/Book.java
   search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/resources/
   search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/resources/META-INF/
   search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/resources/META-INF/persistence.xml
   search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/resources/log4j.properties
   search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/test/
   search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/test/java/
   search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/test/java/java/
   search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/test/java/java/example/
   search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/test/java/java/example/IndexAndSearchTest.java
   search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/test/resources/
   search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/test/resources/import.sql
Modified:
   search/trunk/doc/reference/en/modules/getting-started.xml
Log:
HSEARCH-231
Added a quickstart maven archetype and mentioned it in reference guide.


Property changes on: search/trunk/doc/quickstart
___________________________________________________________________
Name: svn:ignore
   + target


Added: search/trunk/doc/quickstart/pom.xml
===================================================================
--- search/trunk/doc/quickstart/pom.xml	                        (rev 0)
+++ search/trunk/doc/quickstart/pom.xml	2008-10-14 18:53:41 UTC (rev 15347)
@@ -0,0 +1,7 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.hibernate</groupId>
+  <artifactId>hibernate-search-quickstart</artifactId>
+  <packaging>jar</packaging>
+  <version>3.1.0.Beta2</version>
+</project>

Added: search/trunk/doc/quickstart/src/main/resources/META-INF/maven/archetype.xml
===================================================================
--- search/trunk/doc/quickstart/src/main/resources/META-INF/maven/archetype.xml	                        (rev 0)
+++ search/trunk/doc/quickstart/src/main/resources/META-INF/maven/archetype.xml	2008-10-14 18:53:41 UTC (rev 15347)
@@ -0,0 +1,17 @@
+<archetype>
+  <id>hibernate-search-quickstart</id>
+  <sources>
+    <source>src/main/java/example/Book.java</source>
+    <source>src/main/java/example/Author.java</source>
+  </sources>
+  <resources>
+    <resource>src/main/resources/log4j.properties</resource>
+    <resource>src/main/resources/META-INF/persistence.xml</resource>
+  </resources>
+  <testSources>
+    <source>src/test/java/java/example/IndexAndSearchTest.java</source>
+  </testSources>
+  <testResources>
+    <resource>src/test/resources/import.sql</resource>
+  </testResources>
+</archetype>

Added: search/trunk/doc/quickstart/src/main/resources/archetype-resources/pom.xml
===================================================================
--- search/trunk/doc/quickstart/src/main/resources/archetype-resources/pom.xml	                        (rev 0)
+++ search/trunk/doc/quickstart/src/main/resources/archetype-resources/pom.xml	2008-10-14 18:53:41 UTC (rev 15347)
@@ -0,0 +1,81 @@
+<?xml version="1.0"?>
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>${groupId}</groupId>
+    <artifactId>${artifactId}</artifactId>
+    <packaging>jar</packaging>
+    <version>${version}</version>
+    <name>A custom project</name>
+    <url>http://www.myorganization.org</url>
+    <dependencies>
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-search</artifactId>
+            <version>3.1.0.Beta2</version>
+        </dependency>
+        <dependency>
+            <groupId>cglib</groupId>
+            <artifactId>cglib</artifactId>
+            <version>2.1_3</version>
+        </dependency>        
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-annotations</artifactId>
+            <version>3.4.0.CR1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-entitymanager</artifactId>
+            <version>3.4.0.CR1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.solr</groupId>
+            <artifactId>solr-common</artifactId>
+            <version>1.3.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.solr</groupId>
+            <artifactId>solr-core</artifactId>
+            <version>1.3.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.solr</groupId>
+            <artifactId>solr-lucene-snowball</artifactId>
+            <version>1.3.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <version>1.4.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+            <version>1.4.2</version>
+        </dependency>
+        <dependency>
+            <groupId>hsqldb</groupId>
+            <artifactId>hsqldb</artifactId>
+            <version>1.8.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.4</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>2.0.2</version>
+                <configuration>
+                    <source>1.5</source>
+                    <target>1.5</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>

Added: search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/java/example/Author.java
===================================================================
--- search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/java/example/Author.java	                        (rev 0)
+++ search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/java/example/Author.java	2008-10-14 18:53:41 UTC (rev 15347)
@@ -0,0 +1,35 @@
+package example;
+
+import org.hibernate.search.annotations.*;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+/*
+ *
+ */
+ at Entity
+public class Author {
+    @Id
+    @GeneratedValue
+    private Integer id;
+    private String name;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    @Field(index = Index.TOKENIZED, store = Store.YES)
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}

Added: search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/java/example/Book.java
===================================================================
--- search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/java/example/Book.java	                        (rev 0)
+++ search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/java/example/Book.java	2008-10-14 18:53:41 UTC (rev 15347)
@@ -0,0 +1,88 @@
+package example;
+
+import org.hibernate.search.annotations.*;
+import org.apache.solr.analysis.*;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.ManyToMany;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Set;
+
+import example.Author;
+
+/**
+ *
+ */
+ at Entity
+ at AnalyzerDef(name = "customanalyzer",
+		tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class),
+		filters = {
+				@TokenFilterDef(factory = LowerCaseFilterFactory.class),
+				@TokenFilterDef(factory = SnowballPorterFilterFactory.class, params = {
+						@Parameter(name = "language", value = "English")
+				})
+		})
+ at Indexed
+public class Book {
+
+    private Integer id;
+    private String title;
+    private String subtitle;
+    private Set<Author> authors = new HashSet<Author>();
+    private Date publicationDate;
+
+    @IndexedEmbedded
+    @ManyToMany
+    public Set<Author> getAuthors() {
+        return authors;
+    }
+
+    public void setAuthors(Set<Author> authors) {
+        this.authors = authors;
+    }
+
+    public Book() {
+    }
+
+    @Field(index = Index.TOKENIZED, store = Store.YES)
+    @Analyzer(definition = "customanalyzer")
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    @Id
+    @DocumentId
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    @Field(index = Index.TOKENIZED, store = Store.NO)
+    @Analyzer(definition = "customanalyzer")
+    public String getSubtitle() {
+        return subtitle;
+    }
+
+    public void setSubtitle(String subtitle) {
+        this.subtitle = subtitle;
+    }
+
+    @Field(index = Index.UN_TOKENIZED, store = Store.YES)
+    @DateBridge(resolution = Resolution.DAY)
+    public Date getPublicationDate() {
+        return publicationDate;
+    }
+
+    public void setPublicationDate(Date publicationDate) {
+        this.publicationDate = publicationDate;
+    }
+}

Added: search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/resources/META-INF/persistence.xml
===================================================================
--- search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/resources/META-INF/persistence.xml	                        (rev 0)
+++ search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/resources/META-INF/persistence.xml	2008-10-14 18:53:41 UTC (rev 15347)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Persistence deployment descriptor for dev profile -->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
+             version="1.0">
+
+    <persistence-unit name="hibernate-search-example">
+        <properties>
+
+            <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
+            <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
+            <property name="hibernate.connection.username" value="sa"/>
+            <property name="hibernate.connection.password" value=""/>
+            <property name="hibernate.connection.url" value="jdbc:hsqldb:."/>
+
+            <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
+
+            <property name="hibernate.search.default.indexBase"
+                      value="target"/>
+			
+            <!-- optional -->
+            <property name="hibernate.search.default.directory_provider"
+                      value="org.hibernate.search.store.FSDirectoryProvider"/>
+        </properties>
+    </persistence-unit>
+</persistence>

Added: search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/resources/log4j.properties
===================================================================
--- search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/resources/log4j.properties	                        (rev 0)
+++ search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/main/resources/log4j.properties	2008-10-14 18:53:41 UTC (rev 15347)
@@ -0,0 +1,31 @@
+### direct log messages to stdout ###
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.Target=System.out
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
+
+### direct messages to file hibernate.log ###
+log4j.appender.file=org.apache.log4j.FileAppender
+log4j.appender.file.File=hibernate.log
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
+
+### direct messages to socket - chainsaw ###
+log4j.appender.socket=org.apache.log4j.net.SocketAppender
+log4j.appender.socket.remoteHost=localhost
+log4j.appender.socket.port=4560
+log4j.appender.socket.locationInfo=true
+
+### set log levels - for more verbose logging change 'info' to 'debug' ###
+
+log4j.rootLogger=info, stdout
+
+log4j.logger.org.hibernate=info
+
+### log just the SQL
+log4j.logger.org.hibernate.SQL=debug
+
+### log schema export/update ###
+log4j.logger.org.hibernate.tool.hbm2ddl=debug
+
+

Added: search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/test/java/java/example/IndexAndSearchTest.java
===================================================================
--- search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/test/java/java/example/IndexAndSearchTest.java	                        (rev 0)
+++ search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/test/java/java/example/IndexAndSearchTest.java	2008-10-14 18:53:41 UTC (rev 15347)
@@ -0,0 +1,138 @@
+package example;
+
+import org.apache.lucene.queryParser.MultiFieldQueryParser;
+import org.apache.lucene.queryParser.ParseException;
+import org.apache.lucene.queryParser.QueryParser;
+import org.hibernate.Session;
+import org.hibernate.ejb.Ejb3Configuration;
+import org.hibernate.search.FullTextSession;
+import org.hibernate.search.jpa.FullTextEntityManager;
+import org.hibernate.search.jpa.FullTextQuery;
+import org.junit.After;
+import static org.junit.Assert.assertEquals;
+import org.junit.Before;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Query;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ *
+ */
+public class IndexAndSearchTest {
+
+    private EntityManagerFactory emf;
+
+    private EntityManager em;
+
+    private static Logger log = LoggerFactory.getLogger(IndexAndSearchTest.class);
+
+    @Before
+    public void setUp() {
+        initHibernate();
+    }
+
+    @After
+    public void tearDown() {
+        purge();
+    }
+
+    @Test
+    public void testIndexAndSearch() throws Exception {
+        List<Book> books = search("hibernate");
+        assertEquals("Should get empty list since nothing is indexed yet", 0, books.size());
+
+        index();
+
+        // search by title
+        books = search("hibernate");
+        assertEquals("Should find one book", 1, books.size());
+        assertEquals("Wrong title", "Java Persistence with Hibernate", books.get(0).getTitle());
+
+        // search author
+        books = search("\"Gavin King\"");
+        assertEquals("Should find one book", 1, books.size());
+        assertEquals("Wrong title", "Java Persistence with Hibernate", books.get(0).getTitle());
+    }
+
+    @Test
+    public void testStemming() throws Exception {
+
+        index();
+
+        List<Book> books = search("refactor");
+        assertEquals("Wrong title", "Refactoring: Improving the Design of Existing Code", books.get(0).getTitle());
+
+        books = search("refactors");
+        assertEquals("Wrong title", "Refactoring: Improving the Design of Existing Code", books.get(0).getTitle());
+
+        books = search("refactored");
+        assertEquals("Wrong title", "Refactoring: Improving the Design of Existing Code", books.get(0).getTitle());
+
+        books = search("refactoring");
+        assertEquals("Wrong title", "Refactoring: Improving the Design of Existing Code", books.get(0).getTitle());
+    }
+
+
+    private void initHibernate() {
+        Ejb3Configuration config = new Ejb3Configuration();
+        config.configure("hibernate-search-example", new HashMap());
+        emf = config.buildEntityManagerFactory();
+        em = emf.createEntityManager();
+    }
+
+    private void index() {
+        FullTextSession ftSession = org.hibernate.search.Search.getFullTextSession((Session) em.getDelegate());
+        List results = ftSession.createCriteria(Book.class).list();
+        for (Object obj : results) {
+            ftSession.index(obj);
+        }
+    }
+
+    private void purge() {
+        FullTextSession ftSession = org.hibernate.search.Search.getFullTextSession((Session) em.getDelegate());
+        ftSession.purgeAll(Book.class);
+    }
+
+    private List<Book> search(String searchQuery) throws ParseException {
+        Query query = searchQuery(searchQuery);
+
+        List<Book> books = query.getResultList();
+
+        for (Book b : books) {
+            log.info("Title: " + b.getTitle());
+        }
+        return books;
+    }
+
+    private Query searchQuery(String searchQuery) throws ParseException {
+
+        String[] bookFields = {"title", "subtitle", "authors.name", "publicationDate"};
+
+        //lucene part
+        Map<String, Float> boostPerField = new HashMap<String, Float>(4);
+        boostPerField.put(bookFields[0], (float) 4);
+        boostPerField.put(bookFields[1], (float) 3);
+        boostPerField.put(bookFields[2], (float) 4);
+        boostPerField.put(bookFields[3], (float) .5);
+
+        FullTextEntityManager ftEm = org.hibernate.search.jpa.Search.getFullTextEntityManager((EntityManager) em);
+
+        QueryParser parser = new MultiFieldQueryParser(bookFields, ftEm.getSearchFactory().getAnalyzer("customanalyzer"),
+                boostPerField);
+
+        org.apache.lucene.search.Query luceneQuery;
+        luceneQuery = parser.parse(searchQuery);
+
+        final FullTextQuery query = ftEm.createFullTextQuery(luceneQuery, Book.class);
+
+        return query;
+    }
+
+}

Added: search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/test/resources/import.sql
===================================================================
--- search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/test/resources/import.sql	                        (rev 0)
+++ search/trunk/doc/quickstart/src/main/resources/archetype-resources/src/test/resources/import.sql	2008-10-14 18:53:41 UTC (rev 15347)
@@ -0,0 +1,293 @@
+INSERT INTO BOOK VALUES (0, '2007-06-26', '(Theory in Practice (O''Reilly))', 'Beautiful Code: Leading Programmers Explain How They Think');
+INSERT INTO AUTHOR VALUES (0, 'Greg Wilson');
+INSERT INTO BOOK_AUTHOR VALUES (0, 0);
+INSERT INTO AUTHOR VALUES (1, 'Andy Oram');
+INSERT INTO BOOK_AUTHOR VALUES (0, 1);
+INSERT INTO BOOK VALUES (1, '2007-06-01', '', 'Smart and Gets Things Done: Joel Spolsky''s Concise Guide to Finding the Best Technical Talent, Hardback: Joel Spolsky''s Concise Guide to Finding the Best Technical Talent');
+INSERT INTO AUTHOR VALUES (2, 'Joel Spolsky');
+INSERT INTO BOOK_AUTHOR VALUES (1, 2);
+INSERT INTO BOOK VALUES (2, '1998-11-30', '', 'R\344tsel der Kochkunst.');
+INSERT INTO AUTHOR VALUES (3, 'Herve This-Benckhard');
+INSERT INTO BOOK_AUTHOR VALUES (2, 3);
+INSERT INTO BOOK VALUES (3, '1995-03-14', '', 'Design patterns : elements of reusable object-oriented software');
+INSERT INTO AUTHOR VALUES (4, 'Richard Helm');
+INSERT INTO BOOK_AUTHOR VALUES (3, 4);
+INSERT INTO AUTHOR VALUES (5, 'Ralph Johnson');
+INSERT INTO BOOK_AUTHOR VALUES (3, 5);
+INSERT INTO AUTHOR VALUES (6, 'John Vlissides');
+INSERT INTO BOOK_AUTHOR VALUES (3, 6);
+INSERT INTO AUTHOR VALUES (7, 'Erich Gamma');
+INSERT INTO BOOK_AUTHOR VALUES (3, 7);
+INSERT INTO BOOK VALUES (4, '2001-04-01', '', 'Otherland IV: Sea of Silver Light');
+INSERT INTO AUTHOR VALUES (8, 'Tad Williams');
+INSERT INTO BOOK_AUTHOR VALUES (4, 8);
+INSERT INTO BOOK VALUES (5, '2008-01-01', '', 'Feuchtgebiete');
+INSERT INTO AUTHOR VALUES (9, 'Charlotte Roche');
+INSERT INTO BOOK_AUTHOR VALUES (5, 9);
+INSERT INTO BOOK VALUES (6, '2001-06-04', '', 'Kitchen Confidential');
+INSERT INTO AUTHOR VALUES (10, 'Anthony Bourdain');
+INSERT INTO BOOK_AUTHOR VALUES (6, 10);
+INSERT INTO BOOK VALUES (7, '1997-04-01', '', 'Langenscheidts Sprachf\374hrer, Schwedisch');
+INSERT INTO AUTHOR VALUES (11, 'Kerstin Jakten');
+INSERT INTO BOOK_AUTHOR VALUES (7, 11);
+INSERT INTO AUTHOR VALUES (12, 'Dirk Huth');
+INSERT INTO BOOK_AUTHOR VALUES (7, 12);
+INSERT INTO BOOK VALUES (8, '2000-03-30', '20th anniversary edition with a new preface by the author', 'Godel, Escher, Bach: An Eternal Golden Braid');
+INSERT INTO AUTHOR VALUES (13, 'Douglas R. Hofstadter');
+INSERT INTO BOOK_AUTHOR VALUES (8, 13);
+INSERT INTO BOOK VALUES (9, '1998-09-01', '', 'Konkrete Humanit\344t. Vorlesungen \374ber Verantwortung und Menschlichkeit.');
+INSERT INTO AUTHOR VALUES (14, 'Hans Lenk');
+INSERT INTO BOOK_AUTHOR VALUES (9, 14);
+INSERT INTO BOOK VALUES (10, '2005-03-01', '', 'From Naked Ape to Superspecies: Humanity and the Global Eco-crisis');
+INSERT INTO AUTHOR VALUES (15, 'Holly Dressel');
+INSERT INTO BOOK_AUTHOR VALUES (10, 15);
+INSERT INTO AUTHOR VALUES (16, 'David T. Suzuki');
+INSERT INTO BOOK_AUTHOR VALUES (10, 16);
+INSERT INTO BOOK VALUES (11, '2001-10-17', '', 'The Eureka Effect: The Art and Logic of Breakthrough Thinking');
+INSERT INTO AUTHOR VALUES (17, 'D Perkins');
+INSERT INTO BOOK_AUTHOR VALUES (11, 17);
+INSERT INTO BOOK VALUES (12, '2005-01-12', '', 'Lucene In Action');
+INSERT INTO AUTHOR VALUES (18, 'Otis Gospodnetic');
+INSERT INTO BOOK_AUTHOR VALUES (12, 18);
+INSERT INTO AUTHOR VALUES (19, 'Erik Hatcher');
+INSERT INTO BOOK_AUTHOR VALUES (12, 19);
+INSERT INTO BOOK VALUES (13, '1999-09-14', 'Yourdon Press computing series', 'Death March');
+INSERT INTO AUTHOR VALUES (20, 'Edward Yourdon');
+INSERT INTO BOOK_AUTHOR VALUES (13, 20);
+INSERT INTO BOOK VALUES (14, '2006-04-04', 'Pragmatic Programmers', 'Practices of an Agile Developer: Working in the Real World');
+INSERT INTO AUTHOR VALUES (21, 'Andy Hunt');
+INSERT INTO BOOK_AUTHOR VALUES (14, 21);
+INSERT INTO AUTHOR VALUES (22, 'Venkat Subramaniam');
+INSERT INTO BOOK_AUTHOR VALUES (14, 22);
+INSERT INTO BOOK VALUES (15, '2005-05-01', 'Barron''s Educational Series', '1001 Natural Wonders: You Must See Before You Die');
+INSERT INTO AUTHOR VALUES (23, 'Michael Bright');
+INSERT INTO BOOK_AUTHOR VALUES (15, 23);
+INSERT INTO BOOK VALUES (16, '1998-04-25', '', 'Guns, Germs and Steel: A short history of everybody for the last 13,000 years');
+INSERT INTO AUTHOR VALUES (24, 'Jared M. Diamond');
+INSERT INTO BOOK_AUTHOR VALUES (16, 24);
+INSERT INTO BOOK VALUES (17, '1986-04-01', '1st Series', 'Programmers at Work: Interviews');
+INSERT INTO AUTHOR VALUES (25, 'Susan Lammers');
+INSERT INTO BOOK_AUTHOR VALUES (17, 25);
+INSERT INTO BOOK VALUES (18, '1989-08-01', '', 'The Total Devotion Machine and Other Stories');
+INSERT INTO AUTHOR VALUES (26, 'Rosaleen Love');
+INSERT INTO BOOK_AUTHOR VALUES (18, 26);
+INSERT INTO BOOK VALUES (19, '2003-10-01', 'Lonely Planet Travel Guides', 'Catalunya and the Costa Brava');
+INSERT INTO AUTHOR VALUES (27, 'Damien Simonis');
+INSERT INTO BOOK_AUTHOR VALUES (19, 27);
+INSERT INTO BOOK VALUES (20, '2005-07-21', '', 'Java Puzzlers: Traps, Pitfalls, and Corner Cases');
+INSERT INTO AUTHOR VALUES (28, 'Neal Gafter');
+INSERT INTO BOOK_AUTHOR VALUES (20, 28);
+INSERT INTO AUTHOR VALUES (29, 'Joshua Bloch');
+INSERT INTO BOOK_AUTHOR VALUES (20, 29);
+INSERT INTO BOOK VALUES (21, '2008-01-01', '', 'Die Vermessung der Welt');
+INSERT INTO AUTHOR VALUES (30, 'Daniel Kehlmann');
+INSERT INTO BOOK_AUTHOR VALUES (21, 30);
+INSERT INTO BOOK VALUES (22, '1995-01-01', '', 'Logik f\374r Informatiker');
+INSERT INTO AUTHOR VALUES (31, 'Uwe Sch\366ning');
+INSERT INTO BOOK_AUTHOR VALUES (22, 31);
+INSERT INTO BOOK VALUES (23, '2007-04-17', '', 'The Children of Hurin');
+INSERT INTO AUTHOR VALUES (32, 'J.R.R. Tolkien');
+INSERT INTO BOOK_AUTHOR VALUES (23, 32);
+INSERT INTO BOOK VALUES (24, '1999-11-24', '', 'The Pragmatic Programmer');
+INSERT INTO AUTHOR VALUES (33, 'David Thomas');
+INSERT INTO BOOK_AUTHOR VALUES (24, 33);
+INSERT INTO AUTHOR VALUES (34, 'Andrew Hunt');
+INSERT INTO BOOK_AUTHOR VALUES (24, 34);
+INSERT INTO BOOK VALUES (25, '2003-06-19', 'Core', 'Core J2EE Patterns: Best Practices and Design Strategies');
+INSERT INTO AUTHOR VALUES (35, 'Dan Malks');
+INSERT INTO BOOK_AUTHOR VALUES (25, 35);
+INSERT INTO AUTHOR VALUES (36, 'John Crupi');
+INSERT INTO BOOK_AUTHOR VALUES (25, 36);
+INSERT INTO AUTHOR VALUES (37, 'Deepak Alur');
+INSERT INTO BOOK_AUTHOR VALUES (25, 37);
+INSERT INTO BOOK VALUES (26, '2004-01-01', '', 'Tala Svenska');
+INSERT INTO AUTHOR VALUES (38, 'Erbrou Olga Guttke');
+INSERT INTO BOOK_AUTHOR VALUES (26, 38);
+INSERT INTO BOOK VALUES (27, '2003-07-24', '', 'Extreme Programming Pocket Guide');
+INSERT INTO AUTHOR VALUES (39, 'Shane Warden');
+INSERT INTO BOOK_AUTHOR VALUES (27, 39);
+INSERT INTO BOOK VALUES (28, '2003-12-31', '', 'Schweden: Dem Kommissar auf der Spur.');
+INSERT INTO AUTHOR VALUES (40, 'Rainer Sens');
+INSERT INTO BOOK_AUTHOR VALUES (28, 40);
+INSERT INTO BOOK VALUES (29, '2002-01-01', '', 'Reader''s Digest 4 in 1 Condensed Books The Da Vinci Code, Up And Down In The Dales, The Return Of The Dancing Master, A Gathering Light');
+INSERT INTO AUTHOR VALUES (41, 'Henning Mankell');
+INSERT INTO BOOK_AUTHOR VALUES (29, 41);
+INSERT INTO AUTHOR VALUES (42, 'Jennifer Donnelly Dan Brown');
+INSERT INTO BOOK_AUTHOR VALUES (29, 42);
+INSERT INTO AUTHOR VALUES (43, 'Gervase Phinn');
+INSERT INTO BOOK_AUTHOR VALUES (29, 43);
+INSERT INTO BOOK VALUES (30, '2006-11-01', '', 'Cell.');
+INSERT INTO AUTHOR VALUES (44, 'Stephen King');
+INSERT INTO BOOK_AUTHOR VALUES (30, 44);
+INSERT INTO BOOK VALUES (31, '1999-01-01', '', 'Ratgeber nat\374rliche Gesundheit -Massage. Die heilende Kraft der Ber\374hrung. o.A.');
+INSERT INTO AUTHOR VALUES (45, 'Stewart Mitchell');
+INSERT INTO BOOK_AUTHOR VALUES (31, 45);
+INSERT INTO BOOK VALUES (32, '2006-01-01', '', 'Ich bin dann mal weg');
+INSERT INTO AUTHOR VALUES (46, 'Hape Kerkeling');
+INSERT INTO BOOK_AUTHOR VALUES (32, 46);
+INSERT INTO BOOK VALUES (33, '1990-01-01', '', 'Witzig, sehr witzig - Herr Pfarrer');
+INSERT INTO AUTHOR VALUES (47, 'Georg Gessner');
+INSERT INTO BOOK_AUTHOR VALUES (33, 47);
+INSERT INTO BOOK VALUES (34, '2007-07-12', '', 'Lisey''s Story');
+INSERT INTO AUTHOR VALUES (48, 'Stephen King');
+INSERT INTO BOOK_AUTHOR VALUES (34, 48);
+INSERT INTO BOOK VALUES (35, '1999-07-23', 'Object Technology Series', 'Refactoring: Improving the Design of Existing Code');
+INSERT INTO AUTHOR VALUES (49, 'Kent Beck');
+INSERT INTO BOOK_AUTHOR VALUES (35, 49);
+INSERT INTO AUTHOR VALUES (50, 'John Brant');
+INSERT INTO BOOK_AUTHOR VALUES (35, 50);
+INSERT INTO AUTHOR VALUES (51, 'William Opdyke');
+INSERT INTO BOOK_AUTHOR VALUES (35, 51);
+INSERT INTO AUTHOR VALUES (52, 'Don Roberts');
+INSERT INTO BOOK_AUTHOR VALUES (35, 52);
+INSERT INTO AUTHOR VALUES (53, 'Martin Fowler');
+INSERT INTO BOOK_AUTHOR VALUES (35, 53);
+INSERT INTO BOOK VALUES (36, '2003-08-31', '', 'Die Schatten der Globalisierung.');
+INSERT INTO AUTHOR VALUES (54, 'Joseph E. Stiglitz');
+INSERT INTO BOOK_AUTHOR VALUES (36, 54);
+INSERT INTO BOOK VALUES (38, '2006-06-09', 'Pragmatic Programmers', 'Rails Recipes');
+INSERT INTO AUTHOR VALUES (56, 'Chad Fowler');
+INSERT INTO BOOK_AUTHOR VALUES (38, 56);
+INSERT INTO BOOK VALUES (39, '1995-01-01', '', 'Theoretische Informatik, kurzgefa\337t');
+INSERT INTO AUTHOR VALUES (57, 'Uwe Sch\366ning');
+INSERT INTO BOOK_AUTHOR VALUES (39, 57);
+INSERT INTO BOOK VALUES (40, '2001-09-30', '', 'Ploetz. Der farbige Ploetz.');
+INSERT INTO AUTHOR VALUES (58, 'Horst Fischer-Uhlig');
+INSERT INTO BOOK_AUTHOR VALUES (40, 58);
+INSERT INTO BOOK VALUES (41, '2006-10-05', '', 'Freakonomics');
+INSERT INTO AUTHOR VALUES (59, 'Stephen J. Dubner');
+INSERT INTO BOOK_AUTHOR VALUES (41, 59);
+INSERT INTO AUTHOR VALUES (60, 'Steven D. Levitt');
+INSERT INTO BOOK_AUTHOR VALUES (41, 60);
+INSERT INTO BOOK VALUES (42, '2006-02-28', '', 'Das Auge des Leoparden');
+INSERT INTO AUTHOR VALUES (61, 'Henning Mankell');
+INSERT INTO BOOK_AUTHOR VALUES (42, 61);
+INSERT INTO BOOK VALUES (43, '2007-01-16', '', 'Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software');
+INSERT INTO AUTHOR VALUES (62, 'Scott Rosenberg');
+INSERT INTO BOOK_AUTHOR VALUES (43, 62);
+INSERT INTO BOOK VALUES (44, '2007-07-02', '', 'Managing Humans: Biting and Humorous Tales of a Software Engineering Manager');
+INSERT INTO AUTHOR VALUES (63, 'M Lopp');
+INSERT INTO BOOK_AUTHOR VALUES (44, 63);
+INSERT INTO BOOK VALUES (45, '2002-01-01', '', 'Veronika Deschliesst Zu Sterben / Vernika Decides to Die');
+INSERT INTO AUTHOR VALUES (64, 'Paulo Coelho');
+INSERT INTO BOOK_AUTHOR VALUES (45, 64);
+INSERT INTO BOOK VALUES (46, '2002-05-07', '', 'One for My Baby');
+INSERT INTO AUTHOR VALUES (65, 'Tony Parsons');
+INSERT INTO BOOK_AUTHOR VALUES (46, 65);
+INSERT INTO BOOK VALUES (47, '2008-03-03', '', 'Adrenaline Junkies and Template Zombies: Understanding Patterns of Project Behavior');
+INSERT INTO AUTHOR VALUES (66, 'Peter Hruschka');
+INSERT INTO BOOK_AUTHOR VALUES (47, 66);
+INSERT INTO AUTHOR VALUES (67, 'Tim Lister');
+INSERT INTO BOOK_AUTHOR VALUES (47, 67);
+INSERT INTO AUTHOR VALUES (68, 'Steve McMenamin');
+INSERT INTO BOOK_AUTHOR VALUES (47, 68);
+INSERT INTO AUTHOR VALUES (69, 'James Robertson');
+INSERT INTO BOOK_AUTHOR VALUES (47, 69);
+INSERT INTO AUTHOR VALUES (70, 'Suzanne Robertson');
+INSERT INTO BOOK_AUTHOR VALUES (47, 70);
+INSERT INTO AUTHOR VALUES (71, 'Tom DeMarco');
+INSERT INTO BOOK_AUTHOR VALUES (47, 71);
+INSERT INTO BOOK VALUES (48, '1995-01-24', 'Computing', 'UNIX System Administration Handbook');
+INSERT INTO AUTHOR VALUES (72, 'Garth Snyder');
+INSERT INTO BOOK_AUTHOR VALUES (48, 72);
+INSERT INTO AUTHOR VALUES (73, 'Scott Seebass');
+INSERT INTO BOOK_AUTHOR VALUES (48, 73);
+INSERT INTO AUTHOR VALUES (74, 'Trent H. Hein');
+INSERT INTO BOOK_AUTHOR VALUES (48, 74);
+INSERT INTO AUTHOR VALUES (75, 'Evi Nemeth');
+INSERT INTO BOOK_AUTHOR VALUES (48, 75);
+INSERT INTO BOOK VALUES (49, '2001-08-06', '', 'Down Under');
+INSERT INTO AUTHOR VALUES (76, 'Bill Bryson');
+INSERT INTO BOOK_AUTHOR VALUES (49, 76);
+INSERT INTO BOOK VALUES (50, '2007-07-05', '', 'Heat');
+INSERT INTO AUTHOR VALUES (77, 'Bill Buford');
+INSERT INTO BOOK_AUTHOR VALUES (50, 77);
+INSERT INTO BOOK VALUES (51, '1998-01-03', '201 verbs series', '201 Swedish Verbs Fully Conjugated in All the Tenses');
+INSERT INTO AUTHOR VALUES (78, 'Richard P. Auletta');
+INSERT INTO BOOK_AUTHOR VALUES (51, 78);
+INSERT INTO BOOK VALUES (52, '2005-09-19', 'Pragmatic Programmers', 'My Job Went to India: 52 Ways to Save Your Job');
+INSERT INTO AUTHOR VALUES (79, 'Chad Fowler');
+INSERT INTO BOOK_AUTHOR VALUES (52, 79);
+INSERT INTO BOOK VALUES (53, '2005-10-01', '', 'Ajax in Action');
+INSERT INTO AUTHOR VALUES (80, 'Eric Pascarello');
+INSERT INTO BOOK_AUTHOR VALUES (53, 80);
+INSERT INTO AUTHOR VALUES (81, 'Darren James');
+INSERT INTO BOOK_AUTHOR VALUES (53, 81);
+INSERT INTO AUTHOR VALUES (82, 'Dave Crane');
+INSERT INTO BOOK_AUTHOR VALUES (53, 82);
+INSERT INTO BOOK VALUES (54, '2008-08-01', '', 'Duma Key');
+INSERT INTO AUTHOR VALUES (83, 'Stephen King');
+INSERT INTO BOOK_AUTHOR VALUES (54, 83);
+INSERT INTO BOOK VALUES (55, '1992-06-01', 'Nutshell Handbooks', 'Unix in a Nutshell: System V, Release 4');
+INSERT INTO AUTHOR VALUES (84, 'Daniel Gilly');
+INSERT INTO BOOK_AUTHOR VALUES (55, 84);
+INSERT INTO BOOK VALUES (56, '2006-03-16', '', 'Ghosts of Spain: Travels Through a Country''s Hidden Past');
+INSERT INTO AUTHOR VALUES (85, 'Giles Tremlett');
+INSERT INTO BOOK_AUTHOR VALUES (56, 85);
+INSERT INTO BOOK VALUES (57, '', '', 'In die Wildnis');
+INSERT INTO AUTHOR VALUES (86, 'Jon Krakauer');
+INSERT INTO BOOK_AUTHOR VALUES (57, 86);
+INSERT INTO BOOK VALUES (58, '2000-04-04', '', 'The Silicon Boys and Their Valley of Dreams');
+INSERT INTO AUTHOR VALUES (87, 'David A. Kaplan');
+INSERT INTO BOOK_AUTHOR VALUES (58, 87);
+INSERT INTO BOOK VALUES (59, '2006-04-06', '', 'Istanbul: Memories of a City');
+INSERT INTO AUTHOR VALUES (88, 'Orhan Pamuk');
+INSERT INTO BOOK_AUTHOR VALUES (59, 88);
+INSERT INTO BOOK VALUES (60, '2004-04-08', 'Advanced Tools and Techniques for Mysql Administrators', 'High Performance MySQL: Optimization, Backups, Replication, Load Balancing & More');
+INSERT INTO AUTHOR VALUES (89, 'Derek Balling');
+INSERT INTO BOOK_AUTHOR VALUES (60, 89);
+INSERT INTO AUTHOR VALUES (90, 'Jeremy Zawodny');
+INSERT INTO BOOK_AUTHOR VALUES (60, 90);
+INSERT INTO BOOK VALUES (61, '1996-01-01', '', 'LaTeX, 3 Bde., Bd.1, Einf\374hrung');
+INSERT INTO AUTHOR VALUES (91, 'Helmut Kopka');
+INSERT INTO BOOK_AUTHOR VALUES (61, 91);
+INSERT INTO BOOK VALUES (62, '2006-12-05', '', 'Java Persistence with Hibernate');
+INSERT INTO AUTHOR VALUES (92, 'Gavin King');
+INSERT INTO BOOK_AUTHOR VALUES (62, 92);
+INSERT INTO AUTHOR VALUES (93, 'Christian Bauer');
+INSERT INTO BOOK_AUTHOR VALUES (62, 93);
+INSERT INTO BOOK VALUES (63, '2006-12-14', 'Pragmatic Programmers', 'Agile Web Development with Rails');
+INSERT INTO AUTHOR VALUES (94, 'David Hansson ');
+INSERT INTO BOOK_AUTHOR VALUES (63, 94);
+INSERT INTO AUTHOR VALUES (95, 'Leon Breedt');
+INSERT INTO BOOK_AUTHOR VALUES (63, 95);
+INSERT INTO AUTHOR VALUES (96, 'Mike Clark');
+INSERT INTO BOOK_AUTHOR VALUES (63, 96);
+INSERT INTO AUTHOR VALUES (97, 'James Davidson');
+INSERT INTO BOOK_AUTHOR VALUES (63, 97);
+INSERT INTO AUTHOR VALUES (98, 'Justin Gehtland');
+INSERT INTO BOOK_AUTHOR VALUES (63, 98);
+INSERT INTO AUTHOR VALUES (99, 'Andreas Schwarz');
+INSERT INTO BOOK_AUTHOR VALUES (63, 99);
+INSERT INTO AUTHOR VALUES (100, 'Dave Thomas');
+INSERT INTO BOOK_AUTHOR VALUES (63, 100);
+INSERT INTO BOOK VALUES (64, '2001-10-01', 'Programmer to Programmer', 'Professional JavaScript');
+INSERT INTO AUTHOR VALUES (101, 'Paul Wilton');
+INSERT INTO BOOK_AUTHOR VALUES (64, 101);
+INSERT INTO AUTHOR VALUES (102, 'Cliff Wootton');
+INSERT INTO BOOK_AUTHOR VALUES (64, 102);
+INSERT INTO AUTHOR VALUES (103, 'et al');
+INSERT INTO BOOK_AUTHOR VALUES (64, 103);
+INSERT INTO AUTHOR VALUES (104, 'Nigel McFarlane');
+INSERT INTO BOOK_AUTHOR VALUES (64, 104);
+INSERT INTO BOOK VALUES (65, '2008-05-01', '', 'A Thousand Splendid Suns');
+INSERT INTO AUTHOR VALUES (105, 'Khaled Hosseini');
+INSERT INTO BOOK_AUTHOR VALUES (65, 105);
+INSERT INTO BOOK VALUES (66, '2004-04-12', '', 'The Tibetan Art of Positive Thinking: Skilful Thoughts for Successful Living');
+INSERT INTO AUTHOR VALUES (106, 'Christopher Hansard');
+INSERT INTO BOOK_AUTHOR VALUES (66, 106);
+INSERT INTO BOOK VALUES (67, '2008-07-29', '', 'Fucking Berlin: Studentin und Teilzeit-Hure');
+INSERT INTO AUTHOR VALUES (107, 'Sonia Rossi');
+INSERT INTO BOOK_AUTHOR VALUES (67, 107);
+INSERT INTO BOOK VALUES (68, '1999-10-21', '', 'Liar''s Poker: Playing the Money Markets');
+INSERT INTO AUTHOR VALUES (108, 'Michael Lewis');
+INSERT INTO BOOK_AUTHOR VALUES (68, 108);
+INSERT INTO BOOK VALUES (69, '1998-09-24', '', 'Clear Your Clutter with Feng Shui: Space Clearing Can Change Your Life');
+INSERT INTO AUTHOR VALUES (109, 'Karen Kingston');
+INSERT INTO BOOK_AUTHOR VALUES (69, 109);
+INSERT INTO BOOK VALUES (70, '1995-02-13', 'SEI Series in Software Engineering S', 'A Discipline for Software Engineering');
+INSERT INTO AUTHOR VALUES (110, 'Watts S. Humphrey');
+INSERT INTO BOOK_AUTHOR VALUES (70, 110);
+INSERT INTO BOOK VALUES (71, '2004-01-31', '', 'Das grosse Buch der vegetarischen K\374che.');
+INSERT INTO AUTHOR VALUES (111, 'Mahmud Darwish');
+INSERT INTO BOOK_AUTHOR VALUES (71, 111);

Modified: search/trunk/doc/reference/en/modules/getting-started.xml
===================================================================
--- search/trunk/doc/reference/en/modules/getting-started.xml	2008-10-14 14:25:27 UTC (rev 15346)
+++ search/trunk/doc/reference/en/modules/getting-started.xml	2008-10-14 18:53:41 UTC (rev 15347)
@@ -199,8 +199,8 @@
     a working configuration you can start experimenting with other directory
     providers (see <xref linkend="search-configuration-directory" />). Next to
     the directory provider you also have to specify the default root directory
-    for all indexes via <literal>hibernate.search.default.indexBase</literal>.
-    </para>
+    for all indexes via
+    <literal>hibernate.search.default.indexBase</literal>.</para>
 
     <para>Lets further assume that your application contains the Hibernate
     managed classes <classname>example.Book</classname> and
@@ -548,20 +548,29 @@
   <section>
     <title>What's next</title>
 
-    <para>The above paragraphs hopefully helped you getting started with
-    Hibernate Search. You should by now have a file system based index and be
-    able to search and retrieve a list of managed objects via Hibernate
-    Search. The next step is to get more familiar with the overall
-    architecture (<xref linkend="search-architecture" />) and explore the
-    basic features in more detail.</para>
+    <para>The above paragraphs hopefully helped you getting an overview of
+    Hibernate Search. Using the maven archetype plugin and the following
+    command you can create an initial runnable maven project structure
+    populated with the example code of this tutorial.</para>
 
-    <para>Two topics which where only briefly touched in this tutorial were
+    <para><programlisting>mvn archetype:create \ 
+    -DarchetypeGroupId=org.hibernate \
+    -DarchetypeArtifactId=hibernate-search-quickstart \ 
+    -DarchetypeVersion=3.1.0.Beta2 \
+    -DgroupId=my.company -DartifactId=quickstart</programlisting>Using the
+    maven project you can execute the examples, inspect the file system based
+    index and search and retrieve a list of managed objects. Just run
+    <emphasis>mvn package</emphasis> to compile the sources and run the unit
+    tests.</para>
+
+    <para>The next step after this tutorial is to get more familiar with the
+    overall architecture of Hibernate Search (<xref
+    linkend="search-architecture" />) and explore the basic features in more
+    detail. Two topics which where only briefly touched in this tutorial were
     analyzer configuration (<xref linkend="analyzer" />) and field bridges
     (<xref linkend="search-mapping-bridge" />), both important features
-    required for more fine-grained indexing.</para>
-
-    <para>More advanced topics cover clustering (<xref
-    linkend="jms-backend" />) and large indexes handling (<xref
-    linkend="search-configuration-directory-sharding" />).</para>
+    required for more fine-grained indexing. More advanced topics cover
+    clustering (<xref linkend="jms-backend" />) and large indexes handling
+    (<xref linkend="search-configuration-directory-sharding" />).</para>
   </section>
 </chapter>




More information about the hibernate-commits mailing list