2013-07-08 23 views
0

Solr 4.2.1字段列表「exists()」不正確

看來不管我嘗試了什麼,我無法從exists()函數中獲得正確的結果。我正在使用它來檢查架構中是否存在「text_general」類型的字段。它有一定的作用,然而〜10%的時間是錯誤的。

這裏是我在查詢的FL部分使用的簡化代碼來測試它。

fl=list:if(exists(title),1,0),title 

這是我得到的樣本記錄不正確。

<str name="title">Tonight Tonight</str> #Obviously exists 
<long name="list">0</long></doc> #Still returns 0 

這裏是我的架構定義,可能text_general有這個問題?我在文檔中找不到關於它的任何內容。

<field name="title" type="text_general" indexed="true" stored="true" required="false" multiValued="false" /> 

感謝

回答

0

如果要檢查字段存在或不檢查Negative queries

-field:[* TO *] finds all documents without a value for field 

您也可以嘗試-field:["" TO *]

+0

這種解決方案的問題是,它不會在布爾功能的查詢工作。意思我不能用它作爲if語句中的一個檢查。 – user2558898

+0

你想要返回值嗎? – Jayendra

+0

是的,我只是用1和0來指出它的破損。完整的查詢看起來更像 'fl = list:if(exists(title),title,somethingElse),title' 編輯:我實際上已經通過讓我的MySQL導入查詢來執行檢查爲我和分配適當的價值。我仍然好奇爲什麼這不起作用。 – user2558898