blob: 39c782867132c1a984e9447f4c7052e7245e9f93 [file] [log] [blame]
/*
* This software was produced for the U. S. Government
* under Contract No. W15P7T-11-C-F600, and is
* subject to the Rights in Noncommercial Computer Software
* and Noncommercial Computer Software Documentation
* Clause 252.227-7014 (JUN 1995)
*
* Copyright 2013 The MITRE Corporation. All Rights Reserved.
*
* 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 org.apache.solr.handler.tagger;
import org.junit.BeforeClass;
import org.junit.Test;
/**
* Test the {@link TaggerRequestHandler} with
* a Analyzer chain that does use the {@link TaggingAttribute}. See the test
* configuration under 'taggingattribute'.
*/
public class TaggingAttributeTest extends TaggerTestCase {
@BeforeClass
public static void beforeClass() throws Exception {
initCore("solrconfig-tagger.xml", "schema-tagger.xml");
}
/**
* Whole matching, no sub-tags. Links only words with > 3 letters.
* Because of that "San" is not used to start tags
*
*/
@Test
public void testTaggingAttribute() throws Exception {
baseParams.set("field", "name_tagAttribute"); // has WordLengthTaggingFilter using the TaggingAttribute
// this test is based on the longest dominant right test, so we use the
// the same TagClusterReducer setting
baseParams.set("overlaps", "LONGEST_DOMINANT_RIGHT");
buildNames("in", "San", "in San", "Francisco", "San Francisco",
"San Francisco State College", "College of California",
"Clayton", "Clayton North", "North Carolina");
assertTags("He lived in San Francisco.",
//"in", "San Francisco"); //whis would be expected without taggable
"Francisco");// this are the expected results with taggable
assertTags("He enrolled in San Francisco State College of California",
//"in", "San Francisco State College"); //without taggable enabled
"Francisco", "College of California");// With taggable
//NOTE this also tests that started tags are advanced for non-taggable
// tokens, as otherwise 'College of California' would not be
// suggested.
assertTags("He lived in Clayton North Carolina",
//"in", "Clayton", "North Carolina");
"Clayton", "North Carolina");
}
}