我使用solr 6.6与solrJ 6.6。我有一些使用Gson在json对象中读取的代码,并且我有SolrJ的注释,所以我可以为对象建立索引。我对Gson和SolrJ的组合做了错误的事,但我不确定究竟是什么。动态字段以索引到索引的错误字段名称结尾
我的问题是,其中一个字段是一个动态字段,它最终索引与SolrJ为动态字段创建的正则表达式值的一部分。
我希望/期望的是将以下json索引到字段“id”和“spell_text_en-us”的solr中。
{"id":"abc123", "spell_text_en-us":"abc123"}
取而代之的是solr以字段“id”和“spell_text _。*”结尾。
下面是一个模式片段:
<dynamicField name="spell_text_*" type="spell" indexed="true" stored="true"/>
这里是Solr的文档的例子由Solr的查询返回的:
{
"id": "70427-7534088-de",
"spell_text_.*": "Getoasteter",
"_version_": 1578390437688770600
}
这里是I类”的精简版m使用:
public class ExampleDoc {
@SerializedName("id")
@Field("id")
public String id;
@SerializedName(value="spell_text_en-us",
alternate={
"spell_text_de",
"spell_text_fr"
}
}
@Field("spell_text_*")
public String spellText;
}
我的假设是我的spellText字段声明不正确,而且我T应当声明如下:
@SerializedName(value="spell_text_en-us",
alternate={
"spell_text_de",
"spell_text_fr"
}
}
@Field("spell_text_*")
public Map<String, String> spellText;
但是,如果我宣布字段作为地图则GSON解析器将无法在JSON反序列化到ExampleDoc。
有什么建议吗?
谢谢! 李