Package com.orientechnologies.orient.test.database.auto

Source Code of com.orientechnologies.orient.test.database.auto.FullTextIndexTest

/*
* Copyright 1999-2010 Luca Garulli (l.garulli--at--orientechnologies.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.orientechnologies.orient.test.database.auto;

import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;

import org.testng.Assert;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

import com.orientechnologies.orient.client.remote.OEngineRemote;
import com.orientechnologies.orient.core.Orient;
import com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx;
import com.orientechnologies.orient.core.record.impl.ODocument;
import com.orientechnologies.orient.core.sql.query.OSQLSynchQuery;

@Test(groups = { "index" }, sequential = true)
public class FullTextIndexTest {
  private static final int    TOT    = 1000;
  private ODatabaseDocumentTx  database;
  private static final String  TEXT  = "Jay Glenn Miner (May 31, 1932 � June 20, 1994), was a famous integrated circuit designer, known primarily for his "
                                        + "work in multimedia chips and as the 'father of the Amiga'[1]. He received a BS in EECS from "
                                        + "UC Berkeley in 1959. Miner started in the electronics industry with a number of designs in the "
                                        + "medical world, including a remote-control pacemaker. He moved to Atari in the late 1970s. One of "
                                        + "his first successes was to combine an entire breadboard of components into a single chip, known "
                                        + "as the TIA. The TIA was the display hardware for the Atari 2600, which would go on to sell millions."
                                        + " After working on the TIA he headed up the design of the follow-on chip set that would go on to"
                                        + " be the basis of the Atari 8-bit family of home computers, known as ANTIC and CTIA. "
                                        + "In the early 1980s Jay, along with other Atari staffers, had become fed up with management and "
                                        + "decamped. They set up another chipset project under a new company in Santa Clara, called "
                                        + "Hi-Toro (later renamed to Amiga Corporation), where they could have some creative freedom. "
                                        + "There, they started to create a new Motorola 68000-based games console, codenamed Lorraine, "
                                        + "that could be upgraded to a computer. To raise money for the Lorraine project, Amiga Corp."
                                        + " designed and sold joysticks and game cartridges for popular game consoles such as the"
                                        + " Atari 2600 and ColecoVision, as well as an odd input device called the Joyboard, essentially "
                                        + "a joystick the player stood on. Atari continued to be interested in the team's efforts throughout"
                                        + " this period, and funded them with $500,000 in capital in return for first use of their resulting"
                                        + " chipset. The Amiga crew, having continuing serious financial problems, had sought more monetary"
                                        + " support from investors that entire Spring. Amiga entered in to discussions with Commodore."
                                        + " The discussions ultimately led to Commodore wanting to purchase Amiga outright, which would"
                                        + " (from Commodore's viewpoint) cancel any outstanding contracts - including Atari Inc.'s."
                                        + " So instead of Amiga delivering the chipset, Commodore delivered a check of $500,000 to Atari"
                                        + " on Amiga's behalf, in effect returning the funds invested into Amiga for completion of the"
                                        + " Lorraine chipset. The original Amiga (1985) Jay worked at Commodore-Amiga for several years,"
                                        + " in Los Gatos (CA). They made good progress at the beginning, but as Commodore management"
                                        + " changed, they became marginalised and the original Amiga staff was fired or left out on a"
                                        + " one-by-one basis, until the entire Los Gatos office was closed. Miner later worked as a"
                                        + " consultant for Commodore until it went bankrupt. He was known as the 'Padre' (father) of"
                                        + " the Amiga among Amiga users. Jay always took his dog 'Mitchy' (a cockapoo) with him wherever"
                                        + " he went. While he worked at Atari, Mitchy even had her own ID-badge, and Mitchy's paw print"
                                        + " is visible on the inside of the Amiga 1000 top cover, alongside the signatures of the"
                                        + " engineers who worked on it. Jay endured kidney problems for most of his life, according"
                                        + " to his wife, and relied on dialysis. His sister donated one of her own. Miner died due"
                                        + " to complications from kidney failure at the age of 62, just two months after Commodore"
                                        + " declared bankruptcy.";
  private String[]            words;

  @Parameters(value = "url")
  public FullTextIndexTest(String iURL) {
    Orient.instance().registerEngine(new OEngineRemote());

    database = new ODatabaseDocumentTx(iURL);
    words = TEXT.split(" ");
  }

  @Test
  public void testFullTextInsertion() {
    database.open("admin", "admin");

    ODocument doc = new ODocument(database);

    StringBuilder text = new StringBuilder();
    Random random = new Random(1000);

    for (int i = 0; i < TOT; ++i) {
      doc.reset();
      doc.setClassName("Whiz");
      doc.field("id", i);
      doc.field("date", new Date());

      text.setLength(0);
      for (int w = 0; w < 10; ++w) {
        if (w > 0)
          text.append(' ');
        text.append(words[random.nextInt(words.length - 1)]);
      }

      doc.field("text", text.toString());

      doc.save();
    }

    database.close();
  }

  @Test(dependsOnMethods = "testFullTextInsertion")
  public void testFullTextSearch() {
    database.open("admin", "admin");

    Set<ODocument> allDocs = new HashSet<ODocument>();

    for (int i = 0; i < words.length - 1; ++i) {
      List<ODocument> docs = database.query(new OSQLSynchQuery<Object>("SELECT FROM Whiz WHERE text containstext \"" + words[i]
          + "\""));
      allDocs.addAll(docs);
    }

    Assert.assertEquals(allDocs.size(), TOT);

    database.close();
  }
}
TOP

Related Classes of com.orientechnologies.orient.test.database.auto.FullTextIndexTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.