2012-08-08 21 views
17

Bir grup belge kimliğini Solr sonuç kümesinden nasıl hariç tutabilirim?Solr'da sorgu IN değil nasıl yapılır?

/select?q=tag_id:367 AND NOT id:(306670,302209)

gibi Esasen bir şey denedim ve bu kimliği ile 'belgeleri dışlamaz.

cevap

20

bu deneyin: oluşturmaktır -id:302209 bir kimliği ortadan kaldırmak istiyorsanız her zaman eklemek zorunda kalmadan istediğiniz kadar birçok kimlikleri eklemek için izin vermelidir

/select?q=*:*&fq=tag_id:367 AND id:[* TO *] -id:(306670 302209) 

. tam tersi de geçerlidir, bir + ile - takas ve orada olduğu değerler dizisini zorlayabilir. yol

+0

'q = *: *' formatını öneren Thx. Eğer id en 306670 ve 302209. sahip dokümanları dışlamadı hala öneriyorsun bir Ama bu yapar: '/ seçmek q = *: * & fq = TAG_ID: 367 VE -id: 306670 VE -ID: 302209' Esasen gruplama parantezler ile işlevsellik benim için çalışmıyor. – arun

+1

Bunun nedeni, bir nedenle virgül ekledim, bunun yerine boşluklarla ayırmayı denemem olabilir. Ayrıca kodumu da güncelleyeceğim. – harmstyler

+0

Yup, boşluk çalıştı. Teşekkürler! – arun

8

bir çözüm Bulunan:

/select?q=tag_id:367&fq=-id:306670 AND -id:302209 

bu olsa bunu yapmak için en iyi yol olup olmadığından emin değil!

+0

- ayrıca id yapabilirsiniz: onaylamak için -306670 -302209 – Ansari

+0

Thx. Ancak, alternatif sözdizimi benim için org.apache.lucene.queryParser.ParseException atıyor. – arun

+0

Hmm, varsayılan arama alanı 'id' olarak ayarlanmadığı için olabilir. – Ansari

İlgili konular