Я пытаюсь создать индекс для данных с пробелами и специальными символами в solr из Janusgraph для поиска по шаблону.для обработки пробелов и специальных символов мне нужно добавить собственные анализаторы для схемы.поэтому я попытался, как указано в документации Solr. Это дает мне ошибку, как нет такого типа параметра свойства.
mgmt = graph.openManagement()
string = mgmt.makePropertyKey('string').dataType(String.class).make()
text = mgmt.makePropertyKey('text').dataType(String.class).make()
mgmt.buildIndex('string', Vertex.class).addKey(string, Mapping.STRING.asParameter(),Parameter.of(ParameterType.STRING_ANALYZER.getName(),'org.apache.lucene.analysis.standard.StandardTokenizer')).buildMixedIndex("search")
mgmt.buildIndex('text', Vertex.class).addKey(text,Mapping.TEXT.asParameter(), Parameter.of(ParameterType.TEXT_ANALYZER.getName(), 'org.apache.lucene.analysis.core.WhitespaceTokenizer')).buildMixedIndex("search")
mgmt.commit()
Error: error in /tmp/Circuit_Equipment_Hierarchy_Graph_Initialization.groovy at [169: mgmt.buildIndex(Index_Prefix + G_Property, Vertex.class).addKey(G_PropertyKey, Mapping.TEXT.asParameter(), Parameter.of(ParameterType.TEXT_ANALYZER.getName(), 'org.apache.lucene.analysis.core.KeywordTokenizerFactory')).buildMixedIndex("search")] - No such property: ParameterType for class: groovysh_evaluate
Я бы тоже хотел попробовать следующее.если кто-нибудь может подсказать, что можно сделать, это действительно очень помогает.
mgmt = graph.openManagement()
string = mgmt.makePropertyKey('string').dataType(String.class).make()
text = mgmt.makePropertyKey('text').dataType(String.class).make()
mgmt.buildIndex('string', Vertex.class).addKey(string,
Mapping.STRING.asParameter(), Parameter.of(ParameterType.STRING_ANALYZER.getName(),'org.apache.lucene.analysis.standard.StandardTokenizer')).buildMixedIndex("search")
mgmt.buildIndex('text', Vertex.class).addKey(text, Mapping.TEXT.asParameter(), Parameter.of(ParameterType.TEXT_ANALYZER.getName(), 'org.apache.lucene.analysis.core.WhitespaceTokenizer')).buildMixedIndex("search")
mgmt.commit()
Но мне нужно использовать фильтры после анализа поля в solr, поэтому я настроил solr schema.xml следующим образом
<fieldType name="string_rev" class="solr.TextField"
sortMissingLast="true">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.PatternReplaceFilterFactory" pattern="[^A-Za-z0-9*]"
replacement="" replace="all" />
<filter class="solr.ReversedWildcardFilterFactory" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.PatternReplaceFilterFactory" pattern="[^A-Za-z0-9*]"
replacement="" replace="all" />
</analyzer>
</fieldType>
Как полностью настроить "string_rev" в sjanusgraph, чтобы мой запрос анализировался стандартным токенизатором и фильтрованным с помощью patternreplace и в нижнем регистре