Java 类org.apache.lucene.search.suggest.Sort 实例源码

项目:NYBC    文件:ExternalRefSorter.java   
@Override
public BytesRefIterator iterator() throws IOException {
  if (sorted == null) {
    closeWriter();

    sorted = File.createTempFile("RefSorter-", ".sorted",
        Sort.defaultTempDir());
    sort.sort(input, sorted);

    input.delete();
    input = null;
  }

  return new ByteSequenceIterator(new Sort.ByteSequencesReader(sorted),
      sort.getComparator());
}
项目:read-open-source-code    文件:ExternalRefSorter.java   
@Override
public BytesRefIterator iterator() throws IOException {
  if (sorted == null) {
    closeWriter();

    sorted = File.createTempFile("RefSorter-", ".sorted",
        Sort.defaultTempDir());
    sort.sort(input, sorted);

    input.delete();
    input = null;
  }

  return new ByteSequenceIterator(new Sort.ByteSequencesReader(sorted),
      sort.getComparator());
}
项目:read-open-source-code    文件:ExternalRefSorter.java   
@Override
public BytesRefIterator iterator() throws IOException {
  if (sorted == null) {
    closeWriter();

    sorted = File.createTempFile("RefSorter-", ".sorted",
        Sort.defaultTempDir());
    sort.sort(input, sorted);

    input.delete();
    input = null;
  }

  return new ByteSequenceIterator(new Sort.ByteSequencesReader(sorted),
      sort.getComparator());
}
项目:Maskana-Gestor-de-Conocimiento    文件:ExternalRefSorter.java   
@Override
public BytesRefIterator iterator() throws IOException {
  if (sorted == null) {
    closeWriter();

    sorted = File.createTempFile("RefSorter-", ".sorted",
        Sort.defaultTempDir());
    sort.sort(input, sorted);

    input.delete();
    input = null;
  }

  return new ByteSequenceIterator(new Sort.ByteSequencesReader(sorted),
      sort.getComparator());
}
项目:NYBC    文件:ExternalRefSorter.java   
/**
 * Will buffer all sequences to a temporary file and then sort (all on-disk).
 */
public ExternalRefSorter(Sort sort) throws IOException {
  this.sort = sort;
  this.input = File.createTempFile("RefSorter-", ".raw",
      Sort.defaultTempDir());
  this.writer = new Sort.ByteSequencesWriter(input);
}
项目:NYBC    文件:LargeInputFST.java   
public static void main(String[] args) throws IOException {
  File input = new File("/home/dweiss/tmp/shuffled.dict");

  int buckets = 20;
  int shareMaxTail = 10;

  ExternalRefSorter sorter = new ExternalRefSorter(new Sort());
  FSTCompletionBuilder builder = new FSTCompletionBuilder(buckets, sorter, shareMaxTail);

  BufferedReader reader = new BufferedReader(
      new InputStreamReader(
          new FileInputStream(input), "UTF-8"));

  BytesRef scratch = new BytesRef();
  String line;
  int count = 0;
  while ((line = reader.readLine()) != null) {
    scratch.copyChars(line);
    builder.add(scratch, count % buckets);
    if ((count++ % 100000) == 0) {
      System.err.println("Line: " + count);
    }
  }

  System.out.println("Building FSTCompletion.");
  FSTCompletion completion = builder.build();

  File fstFile = new File("completion.fst");
  System.out.println("Done. Writing automaton: " + fstFile.getAbsolutePath());
  completion.getFST().save(fstFile);
  sorter.close();
}
项目:NYBC    文件:TestSort.java   
@Test
public void testIntermediateMerges() throws Exception {
  // Sort 20 mb worth of data with 1mb buffer, binary merging.
  SortInfo info = checkSort(new Sort(Sort.DEFAULT_COMPARATOR, BufferSize.megabytes(1), Sort.defaultTempDir(), 2), 
      generateRandom((int)Sort.MB * 20));
  assertTrue(info.mergeRounds > 10);
}
项目:NYBC    文件:TestSort.java   
@Test
public void testSmallRandom() throws Exception {
  // Sort 20 mb worth of data with 1mb buffer.
  SortInfo sortInfo = checkSort(new Sort(Sort.DEFAULT_COMPARATOR, BufferSize.megabytes(1), Sort.defaultTempDir(), Sort.MAX_TEMPFILES), 
      generateRandom((int)Sort.MB * 20));
  assertEquals(1, sortInfo.mergeRounds);
}
项目:NYBC    文件:TestSort.java   
/**
 * Check sorting data on an instance of {@link Sort}.
 */
private SortInfo checkSort(Sort sort, byte[][] data) throws IOException {
  File unsorted = writeAll("unsorted", data);

  Arrays.sort(data, unsignedByteOrderComparator);
  File golden = writeAll("golden", data);

  File sorted = new File(tempDir, "sorted");
  SortInfo sortInfo = sort.sort(unsorted, sorted);
  //System.out.println("Input size [MB]: " + unsorted.length() / (1024 * 1024));
  //System.out.println(sortInfo);

  assertFilesIdentical(golden, sorted);
  return sortInfo;
}
项目:NYBC    文件:TestSort.java   
private File writeAll(String name, byte[][] data) throws IOException {
  File file = new File(tempDir, name);
  ByteSequencesWriter w = new Sort.ByteSequencesWriter(file);
  for (byte [] datum : data) {
    w.write(datum);
  }
  w.close();
  return file;
}
项目:read-open-source-code    文件:ExternalRefSorter.java   
/**
 * Will buffer all sequences to a temporary file and then sort (all on-disk).
 */
public ExternalRefSorter(Sort sort) throws IOException {
  this.sort = sort;
  this.input = File.createTempFile("RefSorter-", ".raw",
      Sort.defaultTempDir());
  this.writer = new Sort.ByteSequencesWriter(input);
}
项目:read-open-source-code    文件:ExternalRefSorter.java   
/**
 * Will buffer all sequences to a temporary file and then sort (all on-disk).
 */
public ExternalRefSorter(Sort sort) throws IOException {
  this.sort = sort;
  this.input = File.createTempFile("RefSorter-", ".raw",
      Sort.defaultTempDir());
  this.writer = new Sort.ByteSequencesWriter(input);
}
项目:Maskana-Gestor-de-Conocimiento    文件:ExternalRefSorter.java   
/**
 * Will buffer all sequences to a temporary file and then sort (all on-disk).
 */
public ExternalRefSorter(Sort sort) throws IOException {
  this.sort = sort;
  this.input = File.createTempFile("RefSorter-", ".raw",
      Sort.defaultTempDir());
  this.writer = new Sort.ByteSequencesWriter(input);
}
项目:Maskana-Gestor-de-Conocimiento    文件:LargeInputFST.java   
public static void main(String[] args) throws IOException {
  File input = new File("/home/dweiss/tmp/shuffled.dict");

  int buckets = 20;
  int shareMaxTail = 10;

  ExternalRefSorter sorter = new ExternalRefSorter(new Sort());
  FSTCompletionBuilder builder = new FSTCompletionBuilder(buckets, sorter, shareMaxTail);

  BufferedReader reader = new BufferedReader(
      new InputStreamReader(
          new FileInputStream(input), "UTF-8"));

  BytesRef scratch = new BytesRef();
  String line;
  int count = 0;
  while ((line = reader.readLine()) != null) {
    scratch.copyChars(line);
    builder.add(scratch, count % buckets);
    if ((count++ % 100000) == 0) {
      System.err.println("Line: " + count);
    }
  }

  System.out.println("Building FSTCompletion.");
  FSTCompletion completion = builder.build();

  File fstFile = new File("completion.fst");
  System.out.println("Done. Writing automaton: " + fstFile.getAbsolutePath());
  completion.getFST().save(fstFile);
  sorter.close();
}
项目:Maskana-Gestor-de-Conocimiento    文件:TestSort.java   
@Test
public void testIntermediateMerges() throws Exception {
  // Sort 20 mb worth of data with 1mb buffer, binary merging.
  SortInfo info = checkSort(new Sort(Sort.DEFAULT_COMPARATOR, BufferSize.megabytes(1), Sort.defaultTempDir(), 2), 
      generateRandom((int)Sort.MB * 20));
  assertTrue(info.mergeRounds > 10);
}
项目:Maskana-Gestor-de-Conocimiento    文件:TestSort.java   
@Test
public void testSmallRandom() throws Exception {
  // Sort 20 mb worth of data with 1mb buffer.
  SortInfo sortInfo = checkSort(new Sort(Sort.DEFAULT_COMPARATOR, BufferSize.megabytes(1), Sort.defaultTempDir(), Sort.MAX_TEMPFILES), 
      generateRandom((int)Sort.MB * 20));
  assertEquals(1, sortInfo.mergeRounds);
}
项目:Maskana-Gestor-de-Conocimiento    文件:TestSort.java   
/**
 * Check sorting data on an instance of {@link Sort}.
 */
private SortInfo checkSort(Sort sort, byte[][] data) throws IOException {
  File unsorted = writeAll("unsorted", data);

  Arrays.sort(data, unsignedByteOrderComparator);
  File golden = writeAll("golden", data);

  File sorted = new File(tempDir, "sorted");
  SortInfo sortInfo = sort.sort(unsorted, sorted);
  //System.out.println("Input size [MB]: " + unsorted.length() / (1024 * 1024));
  //System.out.println(sortInfo);

  assertFilesIdentical(golden, sorted);
  return sortInfo;
}
项目:Maskana-Gestor-de-Conocimiento    文件:TestSort.java   
private File writeAll(String name, byte[][] data) throws IOException {
  File file = new File(tempDir, name);
  ByteSequencesWriter w = new Sort.ByteSequencesWriter(file);
  for (byte [] datum : data) {
    w.write(datum);
  }
  w.close();
  return file;
}
项目:NYBC    文件:BytesRefSortersTest.java   
@Test
public void testExternalRefSorter() throws Exception {
  ExternalRefSorter s = new ExternalRefSorter(new Sort());
  check(s);
  s.close();
}
项目:NYBC    文件:TestSort.java   
@Test
public void testEmpty() throws Exception {
  checkSort(new Sort(), new byte [][] {});
}
项目:NYBC    文件:TestSort.java   
@Test
public void testSingleLine() throws Exception {
  checkSort(new Sort(), new byte [][] {
      "Single line only.".getBytes("UTF-8")
  });
}
项目:NYBC    文件:TestSort.java   
@Test @Nightly
public void testLargerRandom() throws Exception {
  // Sort 100MB worth of data with 15mb buffer.
  checkSort(new Sort(Sort.DEFAULT_COMPARATOR, BufferSize.megabytes(16), Sort.defaultTempDir(), Sort.MAX_TEMPFILES), 
      generateRandom((int)Sort.MB * 100));
}
项目:Maskana-Gestor-de-Conocimiento    文件:BytesRefSortersTest.java   
@Test
public void testExternalRefSorter() throws Exception {
  ExternalRefSorter s = new ExternalRefSorter(new Sort());
  check(s);
  s.close();
}
项目:Maskana-Gestor-de-Conocimiento    文件:TestSort.java   
@Test
public void testEmpty() throws Exception {
  checkSort(new Sort(), new byte [][] {});
}
项目:Maskana-Gestor-de-Conocimiento    文件:TestSort.java   
@Test
public void testSingleLine() throws Exception {
  checkSort(new Sort(), new byte [][] {
      "Single line only.".getBytes("UTF-8")
  });
}
项目:Maskana-Gestor-de-Conocimiento    文件:TestSort.java   
@Test @Nightly
public void testLargerRandom() throws Exception {
  // Sort 100MB worth of data with 15mb buffer.
  checkSort(new Sort(Sort.DEFAULT_COMPARATOR, BufferSize.megabytes(16), Sort.defaultTempDir(), Sort.MAX_TEMPFILES), 
      generateRandom((int)Sort.MB * 100));
}