2014-09-19 78 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