Solr没有识别更新/提取的camelcased字段名称?

时间:2014-05-02 14:43:10

标签: java solr solrj

我已经和SolrJ合作了几个月了,对于遵循以下模式的模式没有任何问题,带有下划线和camelcasing:

<field name="museum_eventActor" type="text" indexed="true" stored="true" multiValued="true"/>
<field name="museum_eventType" type="text" indexed="false" stored="true" multiValued="true"/>
<field name="museum_eventPlace" type="text" indexed="true" stored="true" multiValued="true"/>
<field name="museum_eventDate" type="text" indexed="true" stored="true" multiValued="true"/>

我们最近决定要索引一些PDF内容,所以我开始使用curl来测试一些内容:

curl "http://localhost:8090/solr-museum/archival/update/extract?stream.file=/home/user/Downloads/transcript.pdf&stream.contentType=application/pdf&literal.id=C1-1-5&literal.museum_eventActor=test&fmap.content=text&commit=true"

但我注意到虽然Solr承认了我的领域,但他们都没有出现在我的索引中。索尔日志说:

792560 [http-8090-1] INFO  org.apache.solr.update.processor.LogUpdateProcessor  – [archivalRecord] webapp=/solr-museum path=/update/extract params={fmap.content=text&commit=true&literal.museum_eventActor=&literal.id=C1-1-5&stream.contentType=application/pdf&stream.file=/home/user/Downloads/transcript.pdf} {add=[C1-1-5 (1467000805262360576)],commit=} 0 698

,索引如下:

<doc>
    <str name="id">C1-1-5</str>
    <long name="_version_">1467000805262360576</long>
    <arr name="content">
        <str>1467000805262360576</str>
    </arr>
</doc>

经过一天的游戏和在线搜索后,我发现了这个问题让我对camelcasing感到疑惑:Solr - Missing Required Field

所以我修改了我的架构看起来像这样:

<field name="museum_eventactor" type="text" indexed="true" stored="true" multiValued="true"/>
<field name="museumeventtype" type="text" indexed="false" stored="true" multiValued="true"/>
<field name="museumeventPlace" type="text" indexed="true" stored="true" multiValued="true"/>
<field name="museum_eventDate" type="text" indexed="true" stored="true" multiValued="true"/>

并解雇了这个请求:

curl "http://localhost:8090/solr-museum/archival/update/extract?stream.file=/home/user/Downloads/transcript.pdf&stream.contentType=application/pdf&literal.id=C1-1-5&literal.museum_eventactor=test&literal.museumeventtype=test&literal.museumeventPlace=test&literal.museum_eventDate=test&fmap.content=text&commit=true"

果然,没有识别出camelcasing的字段:

<doc>
    <arr name="museum_eventactor">
        <str>test</str>
    </arr>
    <str name="id">C1-1-5</str>
    <arr name="museumeventtype">
        <str>test</str>
    </arr>
    <long name="_version_">1467001178833289216</long>
</doc>

现在我已经搜索了很多Solr文档,尽管他们反复指出,如果你愿意接受后果,对字段名称的限制很少,我从来没有遇到过camelcasing的情况。不是一个有效的命名方案,尤其是在Java中。我有点难过为什么会发生这种情况。有没有人有任何想法可以解释这种行为?

0 个答案:

没有答案