2014-09-19 145 views
0

我有一个动态字段:mappings_|int-color|明显包含“|”字符,导致此当我把它给在外地的限制:solr字段限制,带“|”的字段

<lst name="error"> 
    <str name="msg">Error parsing fieldname: Expected identifier at pos 0 str='|int-color|'</str> 
    <int name="code">400</int> 
</lst> 

有没有办法来场极限(FL)包含的字段“|”字符?

回答

0

一位同事指着我this related question,这不可避免地导致我尝试通配不可接受的字符。

这为我工作: mappings_*int*color*

诚然,抓到了一些额外的领域,但工程。

0

我相信你可以通过在单引号包裹你的古怪的字段名称,并使用field功能,像这样做:

field('mappings_|int-color|') 

但是,当然,我敢打赌,你可以猜测真实的解决方案。

Solr允许您将字段名称设置为任何您想要的内容,就像lucene本身所做的那样。而且他们也是相似的,如果你把复杂的名字分配给这样的领域,你有点痛苦。愚蠢的黑客就是这样的例子。所以,不要在上面做这件事,消毒你的字段名称。如果您坚持使用您的字段名称的Java标识符规则,则不会错误。

+0

我同意这是一个奇怪的命名字段的观点,但它是我继承和不能改变的东西。 – javamonkey79 2014-09-19 20:53:31

+0

我刚刚尝试了您的建议,但无效。它不会出错,但它也不会返回文档中的字段。 – javamonkey79 2014-09-19 20:56:28

+0

是的,说实话,我不确定自己是否正确。目前还无法对其进行测试。相当确定接近的东西会起作用。可能稍后看看我能否解决这个问题。 – femtoRgon 2014-09-19 22:20:16