2012-05-31 23 views
7

Pyres ile elasticsearch kullanıyorum. Son sayfamda kopyaları alıyorum. BenElasticSearch ping ile arama sonuçlarını yineliyorum

"size": 15, 
    "from": 15, 

ve ayrıca bu özel sorgu için döndürülen nesnelerin TOTAL_COUNT bir 15 yaşında "dan" ve 24 bir TOTAL_SELECTED_CHANNEL_COUNT ile 24. olduğunu var Bu sorguda

"query": { 
    "query": { 
     "filtered": { 
      "filter": { 
       "and": [ 
        { 
         "match_all": { 

         } 
        } 
       ] 
      }, 
      "query": { 
       "bool": { 
        "minimum_number_should_match": 1, 
        "should": [ 
         { 
          "text": { 
           "name.keyword_name": { 
            "operator": "and", 
            "query": "kentucky", 
            "type": "boolean", 
            "fuzziness": 0.8 
           } 
          } 
         }, 
         { 
          "text": { 
           "address": { 
            "operator": "and", 
            "query": "kentucky", 
            "type": "boolean" 
           } 
          } 
         }, 
         { 
          "text": { 
           "neighborhoods.name": { 
            "operator": "and", 
            "query": "kentucky", 
            "type": "boolean", 
            "fuzziness": 0.8 
           } 
          } 
         }, 
         { 
          "text": { 
           "categories.name": { 
            "operator": "and", 
            "query": "kentucky", 
            "type": "boolean", 
            "fuzziness": 0.8 
           } 
          } 
         } 
        ] 
       } 
      } 
     } 
    }, 
    "facets": { 
     "neighborhoods.id": { 
      "terms": { 
       "field": "neighborhoods.id", 
       "size": 10 
      } 
     }, 
     "categories.id": { 
      "terms": { 
       "field": "categories.id", 
       "size": 10 
      } 
     } 
    }, 
    "size": 15, 
    "from": 15, 
    "fields": [ 
     "id", 
     "categories.id", 
     "name", 
     "address", 
     "city", 
     "state", 
     "zipcode", 
     "location", 
     "_id", 
     "pos_review_count", 
     "neg_review_count", 
     "wishlist_count", 
     "recommender_count", 
     "checkin_count" 
    ] 
}, 

: İşte benim sorgu var Burada 9 sonuç almak istiyorum. Ama bunun yerine, "size" boyutunu 15 olarak ayarladığımdan, 15 sonuç girişi aldım. Sadece 9 benzersiz sonuç olduğu için 6 doküman iki kez görüntüleniyor. Bunun nasıl yapılacağına dair herhangi bir fikir, iki kopya ile 15 yerine 9 sonuç veriyor?

Yardımlarınız için teşekkürler!

+0

Sen tarama = arama_türü denemek isteyebilirsiniz istekleri ve kaydırma kullanarak belirtmektir api. –

+0

ES'in hangi sürümünü kullanıyorsunuz? Sabitlenmiş olan 0.90'da bir hata vardı. "Total_count" deyin ama bu mevcut değil. Faset sayısına mı, yoksa hit sayısına mı bakıyorsunuz? yani daha fazla bilgi gerekli – DrTech

+0

Hata için https://github.com/elasticsearch/elasticsearch/issues/3078 adresine bakın. – DrTech

cevap

7

Birden çok parçada veri varsa, birden çok kez döndürebilir, nedenini bilmiyorum. Üzgünüm, bu çok spesifik değil çünkü neden olduğunu bilmiyorum. http://www.elastic.co/guide/en/elasticsearch/reference/1.4/search-request-preference.html

özelliği bir tercih özel bir dize kullanmak ve bizim yinelenen veri sorunu düzeltildi:

bir tercihi kullanmayı deneyin.

Çoğaltma ayarınız nedir? Verilerin birden fazla parçada olması mümkün mü? Hangi sürümü kullanıyorsunuz?

Ne yazık ki pimlerle, çoklu arama görüşmesinde bir tercih belirleyemezsiniz. Arama tercihinde bir sorgu parametresi olarak bir tercih belirtmeyi deneyin.

arama (indeks = ..., ....., tercihi =)

3

hatası bir alana göre sıralama olduğunuzu (veya _score tarafından varsayılan olarak) docs yinelenen değerlere sahip . Anlayışım, farklı kırbaçların farklı siparişlerde yinelenen alan değerlerini sıralayabilmesidir.

Bu nedenle, her istek için farklı bir eğim elde ettiğinizde, farklı sıralama emirleri alabilirsiniz ve bu nedenle, aynı dokümanı iki farklı sayfalara (istediğiniz shard'a bağlı olarak) alabilirsiniz.

TheJeff Yukarıda belirtildiği gibi, düzeltme _search? Tercihi = sayfanın her biri için kullanılan tutarlı bir shard sağlamak için my-çağrı anahtar

İlgili konular