当前位置: 首页>>代码示例>>Java>>正文


Java RegExFilter类代码示例

本文整理汇总了Java中org.apache.accumulo.core.iterators.user.RegExFilter的典型用法代码示例。如果您正苦于以下问题:Java RegExFilter类的具体用法?Java RegExFilter怎么用?Java RegExFilter使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


RegExFilter类属于org.apache.accumulo.core.iterators.user包,在下文中一共展示了RegExFilter类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: removeElementFromIndex

import org.apache.accumulo.core.iterators.user.RegExFilter; //导入依赖的package包/类
/**
 * Remove the given element's properties from the index.
 * @param element
 */
public void removeElementFromIndex(Element element) {
  BatchDeleter deleter = null;

  try {
    deleter = getDeleter();
    deleter.setRanges(Collections.singleton(new Range()));

    IteratorSetting is = new IteratorSetting(10, "getEdgeFilter", RegExFilter.class);
    RegExFilter.setRegexs(is, null, null,
        "^"+Pattern.quote(element.getId().toString())+"$", null, false);
    deleter.addScanIterator(is);
    deleter.delete();
    deleter.close();
  } catch (Exception e) {
    throw new AccumuloGraphException(e);
  } finally {
    if (deleter != null) {
      deleter.close();
    }
  }
}
 
开发者ID:JHUAPL,项目名称:AccumuloGraph,代码行数:26,代码来源:BaseIndexValuesTableWrapper.java

示例2: singleWildCardSearch

import org.apache.accumulo.core.iterators.user.RegExFilter; //导入依赖的package包/类
/**
 * Scans over the index table for files or directories with a given name that can contain a single wildcard '*' anywhere in the term.
 *
 * @param exp
 *          the name a file or directory to search for with one optional wildcard '*'
 */
public Iterable<Entry<Key,Value>> singleWildCardSearch(String exp) throws Exception {
  int starIndex = exp.indexOf("*");
  if (exp.indexOf("*", starIndex + 1) >= 0)
    throw new Exception("only one wild card for search");

  if (starIndex < 0) {
    return exactTermSearch(exp);
  } else if (starIndex == 0 || starIndex == exp.length() - 1) {
    return singleRestrictedWildCardSearch(exp);
  }

  String firstPart = exp.substring(0, starIndex);
  String lastPart = exp.substring(starIndex + 1);
  String regexString = ".*/" + exp.replace("*", "[^/]*");

  Scanner scanner = conn.createScanner(tableName, auths);
  if (firstPart.length() >= lastPart.length()) {
    System.out.println("executing middle wildcard search for " + regexString + " from entries starting with " + firstPart);
    scanner.setRange(Range.prefix(getForwardIndex(firstPart)));
  } else {
    System.out.println("executing middle wildcard search for " + regexString + " from entries ending with " + lastPart);
    scanner.setRange(Range.prefix(getReverseIndex(lastPart)));
  }
  IteratorSetting regex = new IteratorSetting(50, "regex", RegExFilter.class);
  RegExFilter.setRegexs(regex, null, null, regexString, null, false);
  scanner.addScanIterator(regex);
  return scanner;
}
 
开发者ID:apache,项目名称:accumulo-examples,代码行数:35,代码来源:QueryUtil.java

示例3: run

import org.apache.accumulo.core.iterators.user.RegExFilter; //导入依赖的package包/类
@Override
public int run(String[] args) throws Exception {
  Opts opts = new Opts();
  opts.parseArgs(getClass().getName(), args);

  Job job = Job.getInstance(getConf());
  job.setJobName(getClass().getSimpleName());
  job.setJarByClass(getClass());

  job.setInputFormatClass(AccumuloInputFormat.class);
  opts.setAccumuloConfigs(job);

  IteratorSetting regex = new IteratorSetting(50, "regex", RegExFilter.class);
  RegExFilter.setRegexs(regex, opts.rowRegex, opts.columnFamilyRegex, opts.columnQualifierRegex, opts.valueRegex, false);
  AccumuloInputFormat.addIterator(job, regex);

  job.setMapperClass(RegexMapper.class);
  job.setMapOutputKeyClass(Key.class);
  job.setMapOutputValueClass(Value.class);

  job.setNumReduceTasks(0);

  job.setOutputFormatClass(TextOutputFormat.class);
  TextOutputFormat.setOutputPath(job, new Path(opts.destination));

  System.out.println("setRowRegex: " + opts.rowRegex);
  System.out.println("setColumnFamilyRegex: " + opts.columnFamilyRegex);
  System.out.println("setColumnQualifierRegex: " + opts.columnQualifierRegex);
  System.out.println("setValueRegex: " + opts.valueRegex);

  job.waitForCompletion(true);
  return job.isSuccessful() ? 0 : 1;
}
 
开发者ID:apache,项目名称:accumulo-examples,代码行数:34,代码来源:RegexExample.java

示例4: run

import org.apache.accumulo.core.iterators.user.RegExFilter; //导入依赖的package包/类
@Override
public int run(String[] strings) throws Exception {
    conf.set(MRUtils.JOB_NAME_PROP, "Upgrade to Rya 3.2.2");
    //faster
    init();

    Job job = new Job(conf);
    job.setJarByClass(Upgrade322Tool.class);

    setupAccumuloInput(job);
    AccumuloInputFormat.setInputTableName(job, MRUtils.getTablePrefix(conf) + TBL_OSP_SUFFIX);

    //we do not need to change any row that is a string, custom, or uri type
    IteratorSetting regex = new IteratorSetting(30, "regex",
                                                RegExFilter.class);
    RegExFilter.setRegexs(regex, "\\w*" + TYPE_DELIM + "[\u0003|\u0008|\u0002]", null, null, null, false);
    RegExFilter.setNegate(regex, true);

    // set input output of the particular job
    job.setMapOutputKeyClass(Text.class);
    job.setMapOutputValueClass(Mutation.class);

    setupAccumuloOutput(job, MRUtils.getTablePrefix(conf) +
                           TBL_SPO_SUFFIX);

    // set mapper and reducer classes
    job.setMapperClass(Upgrade322Mapper.class);
    job.setReducerClass(Reducer.class);

    // Submit the job
    return job.waitForCompletion(true) ? 0 : 1;
}
 
开发者ID:apache,项目名称:incubator-rya,代码行数:33,代码来源:Upgrade322Tool.java

示例5: getVersionRegExFilterSetting

import org.apache.accumulo.core.iterators.user.RegExFilter; //导入依赖的package包/类
/**
 * Creates a {@link RegExFilter} setting to ignore the version row in a table.
 * @return the {@link RegExFilter} {@link IteratorSetting}.
 */
public static IteratorSetting getVersionRegExFilterSetting() {
    final IteratorSetting regex = new IteratorSetting(30, "version_regex", RegExFilter.class);
    RegExFilter.setRegexs(regex, "(.*)urn:(.*)#version[\u0000|\u0001](.*)", null, null, null, false);
    Filter.setNegate(regex, true);
    return regex;
}
 
开发者ID:apache,项目名称:incubator-rya,代码行数:11,代码来源:AccumuloRyaUtils.java

示例6: getCopyToolRunTimeRegExFilterSetting

import org.apache.accumulo.core.iterators.user.RegExFilter; //导入依赖的package包/类
/**
 * Creates a {@link RegExFilter} setting to ignore the copy tool run time row in a table.
 * @return the {@link RegExFilter} {@link IteratorSetting}.
 */
public static IteratorSetting getCopyToolRunTimeRegExFilterSetting() {
    final IteratorSetting regex = new IteratorSetting(31, COPY_TOOL_RUN_TIME_LOCAL_NAME + "_regex", RegExFilter.class);
    RegExFilter.setRegexs(regex, "(.*)urn:(.*)#" + COPY_TOOL_RUN_TIME_LOCAL_NAME + "[\u0000|\u0001](.*)", null, null, null, false);
    Filter.setNegate(regex, true);
    return regex;
}
 
开发者ID:apache,项目名称:incubator-rya,代码行数:11,代码来源:AccumuloRyaUtils.java

示例7: getCopyToolSplitTimeRegExFilterSetting

import org.apache.accumulo.core.iterators.user.RegExFilter; //导入依赖的package包/类
/**
 * Creates a {@link RegExFilter} setting to ignore the copy tool split time row in a table.
 * @return the {@link RegExFilter} {@link IteratorSetting}.
 */
public static IteratorSetting getCopyToolSplitTimeRegExFilterSetting() {
    final IteratorSetting regex = new IteratorSetting(32, COPY_TOOL_SPLIT_TIME_LOCAL_NAME + "_regex", RegExFilter.class);
    RegExFilter.setRegexs(regex, "(.*)urn:(.*)#" + COPY_TOOL_SPLIT_TIME_LOCAL_NAME + "[\u0000|\u0001](.*)", null, null, null, false);
    Filter.setNegate(regex, true);
    return regex;
}
 
开发者ID:apache,项目名称:incubator-rya,代码行数:11,代码来源:AccumuloRyaUtils.java

示例8: getCopyToolTimeOffsetRegExFilterSetting

import org.apache.accumulo.core.iterators.user.RegExFilter; //导入依赖的package包/类
/**
 * Creates a {@link RegExFilter} setting to ignore the copy tool time setting row in a table.
 * @return the {@link RegExFilter} {@link IteratorSetting}.
 */
public static IteratorSetting getCopyToolTimeOffsetRegExFilterSetting() {
    final IteratorSetting regex = new IteratorSetting(33, COPY_TOOL_TIME_OFFSET_LOCAL_NAME + "_regex", RegExFilter.class);
    RegExFilter.setRegexs(regex, "(.*)urn:(.*)#" + COPY_TOOL_TIME_OFFSET_LOCAL_NAME + "[\u0000|\u0001](.*)", null, null, null, false);
    Filter.setNegate(regex, true);
    return regex;
}
 
开发者ID:apache,项目名称:incubator-rya,代码行数:11,代码来源:AccumuloRyaUtils.java

示例9: getEdges

import org.apache.accumulo.core.iterators.user.RegExFilter; //导入依赖的package包/类
public Iterable<Edge> getEdges(String key, Object value) {
  AccumuloGraphUtils.nullCheckProperty(key, value);
  if (key.equalsIgnoreCase("label")) {
    key = Constants.LABEL;
  }
  
  BatchScanner scan = getBatchScanner();
  scan.fetchColumnFamily(new Text(key));

  byte[] val = AccumuloByteSerializer.serialize(value);
  if (val[0] != AccumuloByteSerializer.SERIALIZABLE) {
    IteratorSetting is = new IteratorSetting(10, "filter", RegExFilter.class);
    RegExFilter.setRegexs(is, null, null, null, Pattern.quote(new String(val)), false);
    scan.addScanIterator(is);

    return new ScannerIterable<Edge>(scan) {

      @Override
      public Edge next(PeekingIterator<Entry<Key,Value>> iterator) {

        Key k = iterator.next().getKey();

        if (k.getColumnFamily().toString().equals(Constants.LABEL)) {
          String[] vals = k.getColumnQualifier().toString().split(Constants.ID_DELIM);
          return new AccumuloEdge(globals, k.getRow().toString(),
              new AccumuloVertex(globals, vals[0]),
              new AccumuloVertex(globals, vals[1]), null);
        }
        return new AccumuloEdge(globals, k.getRow().toString());
      }
    };
  } else {
    // TODO
    throw new UnsupportedOperationException("Filtering on binary data not currently supported.");
  }
}
 
开发者ID:JHUAPL,项目名称:AccumuloGraph,代码行数:37,代码来源:EdgeTableWrapper.java

示例10: applyEdgeLabelValueFilter

import org.apache.accumulo.core.iterators.user.RegExFilter; //导入依赖的package包/类
/**
 * Add custom iterator to the given scanner so that
 * it will only return keys with value corresponding to an edge.
 * @param scan
 * @param labels
 */
protected void applyEdgeLabelValueFilter(Scanner scan, String... labels) {
  StringBuilder regex = new StringBuilder();
  for (String lab : labels) {
    if (regex.length() != 0)
      regex.append("|");
    regex.append(".*"+Constants.ID_DELIM+"\\Q").append(lab).append("\\E$");
  }

  IteratorSetting is = new IteratorSetting(10, "edgeValueFilter", RegExFilter.class);
  RegExFilter.setRegexs(is, null, null, null, regex.toString(), false);
  scan.addScanIterator(is);
}
 
开发者ID:JHUAPL,项目名称:AccumuloGraph,代码行数:19,代码来源:ElementTableWrapper.java

示例11: metricScanner

import org.apache.accumulo.core.iterators.user.RegExFilter; //导入依赖的package包/类
protected ScannerBase metricScanner(AccumuloFeatureConfig xform, Date start, Date end, String group, String type, String name, TimeUnit timeUnit, Auths auths) {
    checkNotNull(xform);

    try {

        group = defaultString(group);
        timeUnit = (timeUnit == null ? TimeUnit.MINUTES : timeUnit);

        Scanner scanner = connector.createScanner(tableName + REVERSE_SUFFIX, auths.getAuths());
        scanner.setRange(buildRange(type, start, end, timeUnit));

        if (group != null && name != null) {
            scanner.fetchColumn(new Text(combine(timeUnit.toString(), xform.featureName())), new Text(combine(group, name)));
        } else {
            scanner.fetchColumnFamily(new Text(combine(timeUnit.toString(), xform.featureName())));

            String cqRegex = null;
            if (group != null) {
                cqRegex = combine(group, "(.*)");
            } else if (name != null)
                cqRegex = combine("(.*)", name);
            if (cqRegex != null) {
                IteratorSetting regexIterator = new IteratorSetting(Constants.DEFAULT_ITERATOR_PRIORITY - 1, "regex", RegExFilter.class);
                scanner.addScanIterator(regexIterator);
            }
        }

        return scanner;
    } catch (TableNotFoundException e) {
        throw new RuntimeException(e);
    }
}
 
开发者ID:calrissian,项目名称:accumulo-recipes,代码行数:33,代码来源:AccumuloFeatureStore.java


注:本文中的org.apache.accumulo.core.iterators.user.RegExFilter类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。