Search in sources :

Example 1 with StringField

use of edu.uci.ics.textdb.api.field.StringField in project textdb by TextDB.

the class TestConstantsChinese method getSamplePeopleTuples.

public static List<Tuple> getSamplePeopleTuples() {
    try {
        IField[] fields1 = { new StringField("无忌"), new StringField("长孙"), new IntegerField(46), new DoubleField(5.50), new DateField(new SimpleDateFormat("MM-dd-yyyy").parse("01-14-1970")), new TextField("北京大学电气工程学院") };
        IField[] fields2 = { new StringField("孔明"), new StringField("洛克贝尔"), new IntegerField(42), new DoubleField(5.99), new DateField(new SimpleDateFormat("MM-dd-yyyy").parse("01-13-1974")), new TextField("北京大学计算机学院") };
        IField[] fields3 = { new StringField("宋江"), new StringField("建筑"), new IntegerField(42), new DoubleField(5.99), new DateField(new SimpleDateFormat("MM-dd-yyyy").parse("01-13-1974")), new TextField("伟大的建筑是历史的坐标,具有传承的价值。") };
        Tuple tuple1 = new Tuple(SCHEMA_PEOPLE, fields1);
        Tuple tuple2 = new Tuple(SCHEMA_PEOPLE, fields2);
        Tuple tuple3 = new Tuple(SCHEMA_PEOPLE, fields3);
        return Arrays.asList(tuple1, tuple2, tuple3);
    } catch (ParseException e) {
        // exception should not happen because we know the data is correct
        e.printStackTrace();
        return Arrays.asList();
    }
}
Also used : StringField(edu.uci.ics.textdb.api.field.StringField) TextField(edu.uci.ics.textdb.api.field.TextField) IntegerField(edu.uci.ics.textdb.api.field.IntegerField) DateField(edu.uci.ics.textdb.api.field.DateField) ParseException(java.text.ParseException) IField(edu.uci.ics.textdb.api.field.IField) SimpleDateFormat(java.text.SimpleDateFormat) DoubleField(edu.uci.ics.textdb.api.field.DoubleField)

Example 2 with StringField

use of edu.uci.ics.textdb.api.field.StringField in project textdb by TextDB.

the class TestConstantsChineseWordCount method getSamplePeopleTuples.

public static List<Tuple> getSamplePeopleTuples() {
    try {
        IField[] fields1 = { new StringField("bruce"), new StringField("john Lee"), new IntegerField(46), new DoubleField(5.50), new DateField(new SimpleDateFormat("MM-dd-yyyy").parse("01-14-1970")), new TextField("中新社北京4月26日电 (记者 刘育英)“中国制造2025”政策措施实施以来,“为稳定工业增长、加快制造业转型升级发" + "挥了重要作用”,效果初步显现。") };
        IField[] fields2 = { new StringField("tom hanks"), new StringField("cruise"), new IntegerField(45), new DoubleField(5.95), new DateField(new SimpleDateFormat("MM-dd-yyyy").parse("01-13-1971")), new TextField("  中国2015年发布了“中国制造2025”通知。中国工业和信息化部运行监测协调局副" + "局长黄利斌26日在国新办新闻发布会上表示,自“中国制造2025”实施以来,国家制造业创新中心建设、智能制造" + "、工业强基、绿色制造、高端装备创新等“五大工程”扎实推进;2016年度15个重大标志性项目中,7个完全落实" + ",4个基本落实,其余正在推进。") };
        IField[] fields3 = { new StringField("brad lie angelina"), new StringField("pitt"), new IntegerField(44), new DoubleField(6.10), new DateField(new SimpleDateFormat("MM-dd-yyyy").parse("01-12-1972")), new TextField("  2017年,工信部将重点推进六方面工作:加大“五大工程”实施力度," + "积极推进创新中心建设;扩大试点示范城市(群)覆盖面;实施新一轮重大技术改造升级工程;" + "推进" + "制造业与互联网融合发展;优化制造业发展环境。") };
        IField[] fields4 = { new StringField("george lin lin"), new StringField("lin clooney"), new IntegerField(43), new DoubleField(6.06), new DateField(new SimpleDateFormat("MM-dd-yyyy").parse("01-13-1973")), new TextField("  黄利斌说,今年继续开展“互联" + "网+”制造业试点示范,加快工业互联网基础设施改造升级。现在,47%的大企业" + "搭建了运营协同创新平台,两化融合(信息化和工业化融合)管理体系贯标企业运" + "营成本平均下降了8.8%,经营利润平均增长了6.9%。") };
        IField[] fields5 = { new StringField("christian john wayne"), new StringField("rock bale"), new IntegerField(42), new DoubleField(5.99), new DateField(new SimpleDateFormat("MM-dd-yyyy").parse("01-13-1974")), new TextField("  工信部今年还将" + "选取20-30个城市(群)继续开展“中国制造2025”试点示范创建," + "指导试点示范城市(群),在落实新发展理念等方面先行先试。") };
        IField[] fields6 = { new StringField("Mary brown"), new StringField("Lake Forest"), new IntegerField(42), new DoubleField(5.99), new DateField(new SimpleDateFormat("MM-dd-yyyy").parse("01-13-1974")), new TextField("资料图:由驻日中" + "资太阳能企业开发、承建并运营维护的日本岛根县滨田市第二期12兆瓦光伏电站项目(滨田MS太阳能发电站),4月25日在当" + "地举行竣工典礼。该大型太阳能电站的九成设备来自“中国制造”。在日本并网发电的特高压太阳能电站中,这是中国产设备占" + "比最高的项目。中新社记者 王健 摄") };
        Tuple tuple1 = new Tuple(SCHEMA_PEOPLE, fields1);
        Tuple tuple2 = new Tuple(SCHEMA_PEOPLE, fields2);
        Tuple tuple3 = new Tuple(SCHEMA_PEOPLE, fields3);
        Tuple tuple4 = new Tuple(SCHEMA_PEOPLE, fields4);
        Tuple tuple5 = new Tuple(SCHEMA_PEOPLE, fields5);
        Tuple tuple6 = new Tuple(SCHEMA_PEOPLE, fields6);
        return Arrays.asList(tuple1, tuple2, tuple3, tuple4, tuple5, tuple6);
    //            return Arrays.asList(tuple1);
    } catch (ParseException e) {
        // exception should not happen because we know the data is correct
        e.printStackTrace();
        return Arrays.asList();
    }
}
Also used : StringField(edu.uci.ics.textdb.api.field.StringField) TextField(edu.uci.ics.textdb.api.field.TextField) IntegerField(edu.uci.ics.textdb.api.field.IntegerField) DateField(edu.uci.ics.textdb.api.field.DateField) ParseException(java.text.ParseException) IField(edu.uci.ics.textdb.api.field.IField) SimpleDateFormat(java.text.SimpleDateFormat) DoubleField(edu.uci.ics.textdb.api.field.DoubleField)

Example 3 with StringField

use of edu.uci.ics.textdb.api.field.StringField in project textdb by TextDB.

the class PlanStore method addPlan.

/**
     * Adds a Logical Plan JSON to the plan store.
     *
     * @param planName, the name of the plan.
     * @param description, the description of the plan.
     * @param logicalPlanJson, the logical plan JSON string
     * @Return IDField, the id field of the plan stored.
     * @throws TextDBException, when there are null fields or the given name is invalid or there is an existing plan with same name.
     */
public IDField addPlan(String planName, String description, String logicalPlanJson) throws TextDBException {
    if (planName == null || description == null || logicalPlanJson == null) {
        throw new TextDBException("Arguments cannot be null when adding a plan");
    }
    if (!PlanStoreConstants.VALID_PLAN_NAME.matcher(planName).find()) {
        throw new TextDBException("Plan name is not valid. It can only contain alphanumeric characters, " + "underscore, and hyphen.");
    }
    if (getPlan(planName) != null) {
        throw new TextDBException("A plan with the same name already exists");
    }
    try {
        // Converting the JSON String to a JSON Node to minimize space usage and to check validity of JSON string
        ObjectMapper objectMapper = new ObjectMapper();
        JsonNode jsonNode = objectMapper.readValue(logicalPlanJson, JsonNode.class);
        logicalPlanJson = objectMapper.writeValueAsString(jsonNode);
    } catch (IOException e) {
        throw new StorageException("logical plan json is an invalid json string: " + logicalPlanJson);
    }
    Tuple tuple = new Tuple(PlanStoreConstants.SCHEMA_PLAN, new StringField(planName), new StringField(description), new StringField(logicalPlanJson));
    DataWriter dataWriter = relationManager.getTableDataWriter(PlanStoreConstants.TABLE_NAME);
    dataWriter.open();
    IDField id = dataWriter.insertTuple(tuple);
    dataWriter.close();
    return id;
}
Also used : IDField(edu.uci.ics.textdb.api.field.IDField) StringField(edu.uci.ics.textdb.api.field.StringField) JsonNode(com.fasterxml.jackson.databind.JsonNode) IOException(java.io.IOException) TextDBException(edu.uci.ics.textdb.api.exception.TextDBException) StorageException(edu.uci.ics.textdb.api.exception.StorageException) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Tuple(edu.uci.ics.textdb.api.tuple.Tuple) DataWriter(edu.uci.ics.textdb.storage.DataWriter)

Example 4 with StringField

use of edu.uci.ics.textdb.api.field.StringField in project textdb by TextDB.

the class PlanStore method updatePlanInternal.

/**
     * Updates both plan description and plan json of a plan with the given plan name.
     * If description is null, it will not update plan description.
     * If plan json is NULL, it will not update the plan's JSON file.
     *
     * @param planName, the name of the plan.
     * @param description, the new description of the plan.
     * @param logicalPlanJson, the new plan json string.
     * @throws TextDBException
     */
private void updatePlanInternal(String planName, String description, String logicalPlanJson) throws TextDBException {
    Tuple existingPlan = getPlan(planName);
    if (existingPlan == null) {
        return;
    }
    // Checking if an updated description or logical plan JSON string has been provided
    if (description == null && logicalPlanJson == null) {
        return;
    }
    // Checking if the logical plan JSON string needs to be updated
    if (logicalPlanJson != null) {
        // Compressing and checking the validity of the logical plan JSON string
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            JsonNode jsonNode = objectMapper.readValue(logicalPlanJson, JsonNode.class);
            logicalPlanJson = objectMapper.writeValueAsString(jsonNode);
        } catch (IOException e) {
            throw new StorageException("logical plan json is an invalid json string: " + logicalPlanJson);
        }
    }
    // Getting the fields in order for performing the update
    IDField idField = (IDField) existingPlan.getField(SchemaConstants._ID);
    IField descriptionField = description != null ? new StringField(description) : existingPlan.getField(PlanStoreConstants.DESCRIPTION);
    IField logicalPlanJsonField = logicalPlanJson != null ? new StringField(logicalPlanJson) : existingPlan.getField(PlanStoreConstants.LOGICAL_PLAN_JSON);
    // Creating a tuple out of all the fields
    Tuple newTuple = new Tuple(PlanStoreConstants.SCHEMA_PLAN, new StringField(planName), descriptionField, logicalPlanJsonField);
    // Writing the updated tuple
    DataWriter dataWriter = relationManager.getTableDataWriter(PlanStoreConstants.TABLE_NAME);
    dataWriter.open();
    dataWriter.updateTuple(newTuple, idField);
    dataWriter.close();
}
Also used : IDField(edu.uci.ics.textdb.api.field.IDField) StringField(edu.uci.ics.textdb.api.field.StringField) JsonNode(com.fasterxml.jackson.databind.JsonNode) IOException(java.io.IOException) IField(edu.uci.ics.textdb.api.field.IField) StorageException(edu.uci.ics.textdb.api.exception.StorageException) Tuple(edu.uci.ics.textdb.api.tuple.Tuple) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) DataWriter(edu.uci.ics.textdb.storage.DataWriter)

Example 5 with StringField

use of edu.uci.ics.textdb.api.field.StringField in project textdb by TextDB.

the class CatalogConstants method getSchemaCatalogTuples.

/**
     * Gets the tuples to be inserted to the schema catalog.
     * 
     * @param tableName
     * @param tableDirectory
     * @param luceneAnalyzerStr
     * @return
     * @throws StorageException
     */
public static List<Tuple> getSchemaCatalogTuples(String tableName, Schema tableSchema) {
    List<Tuple> schemaCatalogTuples = new ArrayList<>();
    for (int i = 0; i < tableSchema.getAttributes().size(); i++) {
        Attribute attr = tableSchema.getAttributes().get(i);
        Tuple schemaTuple = new Tuple(SCHEMA_CATALOG_SCHEMA, new StringField(tableName), new StringField(attr.getAttributeName()), new StringField(attr.getAttributeType().toString().toLowerCase()), new IntegerField(i));
        schemaCatalogTuples.add(schemaTuple);
    }
    return schemaCatalogTuples;
}
Also used : Attribute(edu.uci.ics.textdb.api.schema.Attribute) StringField(edu.uci.ics.textdb.api.field.StringField) ArrayList(java.util.ArrayList) IntegerField(edu.uci.ics.textdb.api.field.IntegerField) Tuple(edu.uci.ics.textdb.api.tuple.Tuple)

Aggregations

StringField (edu.uci.ics.textdb.api.field.StringField)91 Tuple (edu.uci.ics.textdb.api.tuple.Tuple)85 IField (edu.uci.ics.textdb.api.field.IField)84 IntegerField (edu.uci.ics.textdb.api.field.IntegerField)81 TextField (edu.uci.ics.textdb.api.field.TextField)81 ArrayList (java.util.ArrayList)76 Test (org.junit.Test)75 DoubleField (edu.uci.ics.textdb.api.field.DoubleField)68 DateField (edu.uci.ics.textdb.api.field.DateField)64 Schema (edu.uci.ics.textdb.api.schema.Schema)64 SimpleDateFormat (java.text.SimpleDateFormat)63 Attribute (edu.uci.ics.textdb.api.schema.Attribute)60 Span (edu.uci.ics.textdb.api.span.Span)58 Dictionary (edu.uci.ics.textdb.exp.dictionarymatcher.Dictionary)24 JoinDistancePredicate (edu.uci.ics.textdb.exp.join.JoinDistancePredicate)9 KeywordMatcherSourceOperator (edu.uci.ics.textdb.exp.keywordmatcher.KeywordMatcherSourceOperator)9 IDField (edu.uci.ics.textdb.api.field.IDField)5 ParseException (java.text.ParseException)4 JsonNode (com.fasterxml.jackson.databind.JsonNode)3 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)3