2016-03-22 27 views
-2

Sonr için yeni ve koşullu bir sorgu yazmak zorundayım. Sadece bilmek istedim, birden fazla koşulla bir sorgu yazabilirim.Solr'da koşullu sorgu nasıl yazılır?

Dört sütun var ve sorgu koşulu aşağıdaki gibi bir şey: -

Sütunlar: isim, adres, şehir, eyalet Şimdi

birisi daha sonra sonucu olmalıdır anahtar kelime "Romanya" tarafından arama yapıyorsa, Aşağıdaki koşullara bağlı olarak: -

  1. Ad sütununda anahtar kelime eşleşiyorsa, verileri döndürün ve başka bir sütun için gitmeyin.
  2. Ad sütununun bu anahtar sözcüğü yoksa, bu durumda adres sütunununa gider ve sonuç bulunduğunda ilk adıma benzer ve ardından verileri döndürür aksi takdirde sonraki sütuna gider.

Aramada kullanılacak sütunların önceden tanımlandığı öncelikli bir aramadır. Eğer sonr böyle bir işlevsellik sağlarsa, herhangi bir bulanık mantık yazmak yerine onu kullanmak istiyorum.

Teşekkür

cevap

0

Bu bahsettiğin tüm sütunları aramak olacaktır. (Edismax sorgu türü kullanılırken) sorgulamak istediğiniz hangi alanların solr anlatmak için qf kullanın:

adı sütununda bir hit bir hit daha yüksek görünecek, böylece de, ağırlıkları verebilir
qf=name address city 

buna karşılık şehir sütununda bir hit daha yüksek görünecek adres sütunu,:

qf=name^20 address^10 city 

istediğiniz arama sonucu almak için ağırlıkları ayarlamak gerekebilir.

fq=name:romania 

veya q

+name:"romania" or +address:"romania" or +city:"romania" or +state:"romania" 

kullanarak VEYA ilk sorgu yanlışsa, o zaman geçmek olduğunu programlamada gibidir:

0

Bu gibi arama yapmak için FQ kullanabilirsiniz bir sonraki ve bir sonraki.