You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by cp...@apache.org on 2017/05/25 17:55:26 UTC
[17/44] lucene-solr:jira/solr-8668: LUCENE-7815: Remove more
PostingsHighlighter remnants
LUCENE-7815: Remove more PostingsHighlighter remnants
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/85c3ae20
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/85c3ae20
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/85c3ae20
Branch: refs/heads/jira/solr-8668
Commit: 85c3ae2040d175ddc0af2147ccde2c9b7599ef59
Parents: 2319d69
Author: David Smiley <ds...@apache.org>
Authored: Tue May 23 17:13:03 2017 -0400
Committer: David Smiley <ds...@apache.org>
Committed: Tue May 23 17:13:03 2017 -0400
----------------------------------------------------------------------
.../CustomSeparatorBreakIterator.java | 150 -------------------
.../postingshighlight/WholeBreakIterator.java | 116 --------------
.../TestCustomSeparatorBreakIterator.java | 114 --------------
.../TestWholeBreakIterator.java | 134 -----------------
4 files changed, 514 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c3ae20/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/CustomSeparatorBreakIterator.java
----------------------------------------------------------------------
diff --git a/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/CustomSeparatorBreakIterator.java b/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/CustomSeparatorBreakIterator.java
deleted file mode 100644
index 9a4c461..0000000
--- a/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/CustomSeparatorBreakIterator.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.lucene.search.postingshighlight;
-
-import java.text.BreakIterator;
-import java.text.CharacterIterator;
-
-/**
- * A {@link BreakIterator} that breaks the text whenever a certain separator, provided as a constructor argument, is found.
- */
-public final class CustomSeparatorBreakIterator extends BreakIterator {
-
- private final char separator;
- private CharacterIterator text;
- private int current;
-
- public CustomSeparatorBreakIterator(char separator) {
- this.separator = separator;
- }
-
- @Override
- public int current() {
- return current;
- }
-
- @Override
- public int first() {
- text.setIndex(text.getBeginIndex());
- return current = text.getIndex();
- }
-
- @Override
- public int last() {
- text.setIndex(text.getEndIndex());
- return current = text.getIndex();
- }
-
- @Override
- public int next() {
- if (text.getIndex() == text.getEndIndex()) {
- return DONE;
- } else {
- return advanceForward();
- }
- }
-
- private int advanceForward() {
- char c;
- while ((c = text.next()) != CharacterIterator.DONE) {
- if (c == separator) {
- return current = text.getIndex() + 1;
- }
- }
- assert text.getIndex() == text.getEndIndex();
- return current = text.getIndex();
- }
-
- @Override
- public int following(int pos) {
- if (pos < text.getBeginIndex() || pos > text.getEndIndex()) {
- throw new IllegalArgumentException("offset out of bounds");
- } else if (pos == text.getEndIndex()) {
- // this conflicts with the javadocs, but matches actual behavior (Oracle has a bug in something)
- // https://bugs.openjdk.java.net/browse/JDK-8015110
- text.setIndex(text.getEndIndex());
- current = text.getIndex();
- return DONE;
- } else {
- text.setIndex(pos);
- current = text.getIndex();
- return advanceForward();
- }
- }
-
- @Override
- public int previous() {
- if (text.getIndex() == text.getBeginIndex()) {
- return DONE;
- } else {
- return advanceBackward();
- }
- }
-
- private int advanceBackward() {
- char c;
- while ((c = text.previous()) != CharacterIterator.DONE) {
- if (c == separator) {
- return current = text.getIndex() + 1;
- }
- }
- assert text.getIndex() == text.getBeginIndex();
- return current = text.getIndex();
- }
-
- @Override
- public int preceding(int pos) {
- if (pos < text.getBeginIndex() || pos > text.getEndIndex()) {
- throw new IllegalArgumentException("offset out of bounds");
- } else if (pos == text.getBeginIndex()) {
- // this conflicts with the javadocs, but matches actual behavior (Oracle has a bug in something)
- // https://bugs.openjdk.java.net/browse/JDK-8015110
- text.setIndex(text.getBeginIndex());
- current = text.getIndex();
- return DONE;
- } else {
- text.setIndex(pos);
- current = text.getIndex();
- return advanceBackward();
- }
- }
-
- @Override
- public int next(int n) {
- if (n < 0) {
- for (int i = 0; i < -n; i++) {
- previous();
- }
- } else {
- for (int i = 0; i < n; i++) {
- next();
- }
- }
- return current();
- }
-
- @Override
- public CharacterIterator getText() {
- return text;
- }
-
- @Override
- public void setText(CharacterIterator newText) {
- text = newText;
- current = text.getBeginIndex();
- }
-}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c3ae20/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/WholeBreakIterator.java
----------------------------------------------------------------------
diff --git a/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/WholeBreakIterator.java b/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/WholeBreakIterator.java
deleted file mode 100644
index 7f5ba6a..0000000
--- a/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/WholeBreakIterator.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.lucene.search.postingshighlight;
-
-import java.text.BreakIterator;
-import java.text.CharacterIterator;
-
-/** Just produces one single fragment for the entire text */
-public final class WholeBreakIterator extends BreakIterator {
- private CharacterIterator text;
- private int start;
- private int end;
- private int current;
-
- @Override
- public int current() {
- return current;
- }
-
- @Override
- public int first() {
- return (current = start);
- }
-
- @Override
- public int following(int pos) {
- if (pos < start || pos > end) {
- throw new IllegalArgumentException("offset out of bounds");
- } else if (pos == end) {
- // this conflicts with the javadocs, but matches actual behavior (Oracle has a bug in something)
- // https://bugs.openjdk.java.net/browse/JDK-8015110
- current = end;
- return DONE;
- } else {
- return last();
- }
- }
-
- @Override
- public CharacterIterator getText() {
- return text;
- }
-
- @Override
- public int last() {
- return (current = end);
- }
-
- @Override
- public int next() {
- if (current == end) {
- return DONE;
- } else {
- return last();
- }
- }
-
- @Override
- public int next(int n) {
- if (n < 0) {
- for (int i = 0; i < -n; i++) {
- previous();
- }
- } else {
- for (int i = 0; i < n; i++) {
- next();
- }
- }
- return current();
- }
-
- @Override
- public int preceding(int pos) {
- if (pos < start || pos > end) {
- throw new IllegalArgumentException("offset out of bounds");
- } else if (pos == start) {
- // this conflicts with the javadocs, but matches actual behavior (Oracle has a bug in something)
- // https://bugs.openjdk.java.net/browse/JDK-8015110
- current = start;
- return DONE;
- } else {
- return first();
- }
- }
-
- @Override
- public int previous() {
- if (current == start) {
- return DONE;
- } else {
- return first();
- }
- }
-
- @Override
- public void setText(CharacterIterator newText) {
- start = newText.getBeginIndex();
- end = newText.getEndIndex();
- text = newText;
- current = start;
- }
-}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c3ae20/lucene/highlighter/src/test/org/apache/lucene/search/postingshighlight/TestCustomSeparatorBreakIterator.java
----------------------------------------------------------------------
diff --git a/lucene/highlighter/src/test/org/apache/lucene/search/postingshighlight/TestCustomSeparatorBreakIterator.java b/lucene/highlighter/src/test/org/apache/lucene/search/postingshighlight/TestCustomSeparatorBreakIterator.java
deleted file mode 100644
index 29e7e97..0000000
--- a/lucene/highlighter/src/test/org/apache/lucene/search/postingshighlight/TestCustomSeparatorBreakIterator.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.lucene.search.postingshighlight;
-
-import com.carrotsearch.randomizedtesting.generators.RandomPicks;
-import org.apache.lucene.util.LuceneTestCase;
-
-import java.text.BreakIterator;
-import java.util.Locale;
-
-import static org.apache.lucene.search.postingshighlight.TestWholeBreakIterator.assertSameBreaks;
-import static org.hamcrest.CoreMatchers.equalTo;
-
-public class TestCustomSeparatorBreakIterator extends LuceneTestCase {
-
- private static final Character[] SEPARATORS = new Character[]{' ', '\u0000', 8233};
-
- public void testBreakOnCustomSeparator() throws Exception {
- Character separator = randomSeparator();
- BreakIterator bi = new CustomSeparatorBreakIterator(separator);
- String source = "this" + separator + "is" + separator + "the" + separator + "first" + separator + "sentence";
- bi.setText(source);
- assertThat(bi.current(), equalTo(0));
- assertThat(bi.first(), equalTo(0));
- assertThat(source.substring(bi.current(), bi.next()), equalTo("this" + separator));
- assertThat(source.substring(bi.current(), bi.next()), equalTo("is" + separator));
- assertThat(source.substring(bi.current(), bi.next()), equalTo("the" + separator));
- assertThat(source.substring(bi.current(), bi.next()), equalTo("first" + separator));
- assertThat(source.substring(bi.current(), bi.next()), equalTo("sentence"));
- assertThat(bi.next(), equalTo(BreakIterator.DONE));
-
- assertThat(bi.last(), equalTo(source.length()));
- int current = bi.current();
- assertThat(source.substring(bi.previous(), current), equalTo("sentence"));
- current = bi.current();
- assertThat(source.substring(bi.previous(), current), equalTo("first" + separator));
- current = bi.current();
- assertThat(source.substring(bi.previous(), current), equalTo("the" + separator));
- current = bi.current();
- assertThat(source.substring(bi.previous(), current), equalTo("is" + separator));
- current = bi.current();
- assertThat(source.substring(bi.previous(), current), equalTo("this" + separator));
- assertThat(bi.previous(), equalTo(BreakIterator.DONE));
- assertThat(bi.current(), equalTo(0));
-
- assertThat(source.substring(0, bi.following(9)), equalTo("this" + separator + "is" + separator + "the" + separator));
-
- assertThat(source.substring(0, bi.preceding(9)), equalTo("this" + separator + "is" + separator));
-
- assertThat(bi.first(), equalTo(0));
- assertThat(source.substring(0, bi.next(3)), equalTo("this" + separator + "is" + separator + "the" + separator));
- }
-
- public void testSingleSentences() throws Exception {
- BreakIterator expected = BreakIterator.getSentenceInstance(Locale.ROOT);
- BreakIterator actual = new CustomSeparatorBreakIterator(randomSeparator());
- assertSameBreaks("a", expected, actual);
- assertSameBreaks("ab", expected, actual);
- assertSameBreaks("abc", expected, actual);
- assertSameBreaks("", expected, actual);
- }
-
- public void testSliceEnd() throws Exception {
- BreakIterator expected = BreakIterator.getSentenceInstance(Locale.ROOT);
- BreakIterator actual = new CustomSeparatorBreakIterator(randomSeparator());
- assertSameBreaks("a000", 0, 1, expected, actual);
- assertSameBreaks("ab000", 0, 1, expected, actual);
- assertSameBreaks("abc000", 0, 1, expected, actual);
- assertSameBreaks("000", 0, 0, expected, actual);
- }
-
- public void testSliceStart() throws Exception {
- BreakIterator expected = BreakIterator.getSentenceInstance(Locale.ROOT);
- BreakIterator actual = new CustomSeparatorBreakIterator(randomSeparator());
- assertSameBreaks("000a", 3, 1, expected, actual);
- assertSameBreaks("000ab", 3, 2, expected, actual);
- assertSameBreaks("000abc", 3, 3, expected, actual);
- assertSameBreaks("000", 3, 0, expected, actual);
- }
-
- public void testSliceMiddle() throws Exception {
- BreakIterator expected = BreakIterator.getSentenceInstance(Locale.ROOT);
- BreakIterator actual = new CustomSeparatorBreakIterator(randomSeparator());
- assertSameBreaks("000a000", 3, 1, expected, actual);
- assertSameBreaks("000ab000", 3, 2, expected, actual);
- assertSameBreaks("000abc000", 3, 3, expected, actual);
- assertSameBreaks("000000", 3, 0, expected, actual);
- }
-
- /** the current position must be ignored, initial position is always first() */
- public void testFirstPosition() throws Exception {
- BreakIterator expected = BreakIterator.getSentenceInstance(Locale.ROOT);
- BreakIterator actual = new CustomSeparatorBreakIterator(randomSeparator());
- assertSameBreaks("000ab000", 3, 2, 4, expected, actual);
- }
-
- private static char randomSeparator() {
- return RandomPicks.randomFrom(random(), SEPARATORS);
- }
-}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c3ae20/lucene/highlighter/src/test/org/apache/lucene/search/postingshighlight/TestWholeBreakIterator.java
----------------------------------------------------------------------
diff --git a/lucene/highlighter/src/test/org/apache/lucene/search/postingshighlight/TestWholeBreakIterator.java b/lucene/highlighter/src/test/org/apache/lucene/search/postingshighlight/TestWholeBreakIterator.java
deleted file mode 100644
index 43249ea..0000000
--- a/lucene/highlighter/src/test/org/apache/lucene/search/postingshighlight/TestWholeBreakIterator.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.lucene.search.postingshighlight;
-
-import org.apache.lucene.util.LuceneTestCase;
-
-import java.text.BreakIterator;
-import java.text.CharacterIterator;
-import java.text.StringCharacterIterator;
-import java.util.Locale;
-
-public class TestWholeBreakIterator extends LuceneTestCase {
-
- /** For single sentences, we know WholeBreakIterator should break the same as a sentence iterator */
- public void testSingleSentences() throws Exception {
- BreakIterator expected = BreakIterator.getSentenceInstance(Locale.ROOT);
- BreakIterator actual = new WholeBreakIterator();
- assertSameBreaks("a", expected, actual);
- assertSameBreaks("ab", expected, actual);
- assertSameBreaks("abc", expected, actual);
- assertSameBreaks("", expected, actual);
- }
-
- public void testSliceEnd() throws Exception {
- BreakIterator expected = BreakIterator.getSentenceInstance(Locale.ROOT);
- BreakIterator actual = new WholeBreakIterator();
- assertSameBreaks("a000", 0, 1, expected, actual);
- assertSameBreaks("ab000", 0, 1, expected, actual);
- assertSameBreaks("abc000", 0, 1, expected, actual);
- assertSameBreaks("000", 0, 0, expected, actual);
- }
-
- public void testSliceStart() throws Exception {
- BreakIterator expected = BreakIterator.getSentenceInstance(Locale.ROOT);
- BreakIterator actual = new WholeBreakIterator();
- assertSameBreaks("000a", 3, 1, expected, actual);
- assertSameBreaks("000ab", 3, 2, expected, actual);
- assertSameBreaks("000abc", 3, 3, expected, actual);
- assertSameBreaks("000", 3, 0, expected, actual);
- }
-
- public void testSliceMiddle() throws Exception {
- BreakIterator expected = BreakIterator.getSentenceInstance(Locale.ROOT);
- BreakIterator actual = new WholeBreakIterator();
- assertSameBreaks("000a000", 3, 1, expected, actual);
- assertSameBreaks("000ab000", 3, 2, expected, actual);
- assertSameBreaks("000abc000", 3, 3, expected, actual);
- assertSameBreaks("000000", 3, 0, expected, actual);
- }
-
- /** the current position must be ignored, initial position is always first() */
- public void testFirstPosition() throws Exception {
- BreakIterator expected = BreakIterator.getSentenceInstance(Locale.ROOT);
- BreakIterator actual = new WholeBreakIterator();
- assertSameBreaks("000ab000", 3, 2, 4, expected, actual);
- }
-
- public static void assertSameBreaks(String text, BreakIterator expected, BreakIterator actual) {
- assertSameBreaks(new StringCharacterIterator(text),
- new StringCharacterIterator(text),
- expected,
- actual);
- }
-
- public static void assertSameBreaks(String text, int offset, int length, BreakIterator expected, BreakIterator actual) {
- assertSameBreaks(text, offset, length, offset, expected, actual);
- }
-
- public static void assertSameBreaks(String text, int offset, int length, int current, BreakIterator expected, BreakIterator actual) {
- assertSameBreaks(new StringCharacterIterator(text, offset, offset+length, current),
- new StringCharacterIterator(text, offset, offset+length, current),
- expected,
- actual);
- }
-
- /** Asserts that two breakiterators break the text the same way */
- public static void assertSameBreaks(CharacterIterator one, CharacterIterator two, BreakIterator expected, BreakIterator actual) {
- expected.setText(one);
- actual.setText(two);
-
- assertEquals(expected.current(), actual.current());
-
- // next()
- int v = expected.current();
- while (v != BreakIterator.DONE) {
- assertEquals(v = expected.next(), actual.next());
- assertEquals(expected.current(), actual.current());
- }
-
- // first()
- assertEquals(expected.first(), actual.first());
- assertEquals(expected.current(), actual.current());
- // last()
- assertEquals(expected.last(), actual.last());
- assertEquals(expected.current(), actual.current());
-
- // previous()
- v = expected.current();
- while (v != BreakIterator.DONE) {
- assertEquals(v = expected.previous(), actual.previous());
- assertEquals(expected.current(), actual.current());
- }
-
- // following()
- for (int i = one.getBeginIndex(); i <= one.getEndIndex(); i++) {
- expected.first();
- actual.first();
- assertEquals(expected.following(i), actual.following(i));
- assertEquals(expected.current(), actual.current());
- }
-
- // preceding()
- for (int i = one.getBeginIndex(); i <= one.getEndIndex(); i++) {
- expected.last();
- actual.last();
- assertEquals(expected.preceding(i), actual.preceding(i));
- assertEquals(expected.current(), actual.current());
- }
- }
-}