我在指數三個字段;名字,姓氏和isManager(1或0)。 如何去使用的QueryParser,並添加IsManager的(作爲一個全球性的過濾器)1只讓我有效地尋找只有管理者?Lucene QueryParser以及如何添加全局過濾器?
所以,如果通過在「名字:約翰」爲用戶搜索/,我想添加/追加「IsManager的:1」作爲一個全球性的過濾器。一個解決方案是「不IsManager的:0」添加到所有用戶的查詢字符串...但不知道是否有任何其他的首選方式。
我在指數三個字段;名字,姓氏和isManager(1或0)。 如何去使用的QueryParser,並添加IsManager的(作爲一個全球性的過濾器)1只讓我有效地尋找只有管理者?Lucene QueryParser以及如何添加全局過濾器?
所以,如果通過在「名字:約翰」爲用戶搜索/,我想添加/追加「IsManager的:1」作爲一個全球性的過濾器。一個解決方案是「不IsManager的:0」添加到所有用戶的查詢字符串...但不知道是否有任何其他的首選方式。
包裹查詢對象,你使用FilteredQuery http://lucene.apache.org/core/4_0_0/core/org/apache/lucene/search/FilteredQuery.html
使用query filters是做正確的方式從QueryParer回來。
與追加的問題是,理論上這是容易出現SQL注入攻擊(認爲SQL injection但對Lucene的查詢)。