2012-12-21 19 views
8

Diğer uygulamalarıma otomatik tamamlama özelliği sağlayacak olan play2 ve elasticsearch'te küçük bir uygulama oluşturdum. Elasticsearch örneğimi üretime geçirmenin zamanı geldi.Elasticsearch örneğim çalışıyor ve çalışıyor, hadi üretime taşıyalım.

haritalama:

curl -XPUT 'http://127.0.0.1:9200/auto_complete/?pretty=1' -d ' 
{ 
    "mappings": { 
     "search_word": { 
      "_all": { 
       "enabled": false 
      }, 
      "properties": { 
       "id": { 
        "type": "string" 
       }, 
       "word": { 
        "fields": { 
         "ngrams": { 
          "type": "string", 
          "analyzer": "custom_ngram" 
         }, 
         "full": { 
          "type": "string", 
          "search_analyzer": "custom_full", 
          "index_analyzer": "custom_full" 
         } 
        }, 
        "type": "multi_field" 
       }, 
       "word_type": { 
        "type": "string" 
       } 
      } 
     } 
    }, 
    "settings": { 
     "analysis": { 
      "filter": { 
       "customnGram": { 
        "max_gram": 50, 
        "min_gram": 2, 
        "type": "edgeNGram" 
       } 
      }, 
      "analyzer": { 
       "custom_ngram": { 
        "filter": [ 
         "standard", 
         "lowercase", 
         "customnGram" 
        ], 
        "type": "custom", 
        "tokenizer": "standard" 
       }, 
       "custom_full": { 
        "filter": [ 
         "standard", 
         "lowercase" 
        ], 
        "type": "custom", 
        "tokenizer": "standard" 
       } 
      } 
     } 
    } 
} 
' 

sizin için bazı test veriler:

curl -XPOST 'http://127.0.0.1:9200/_bulk?pretty=1' -d ' 
{"index" : {"_index" : "auto_complete", "_type" : "search_word"}} 
{"word" : "vvs", "word_type":"STRONG_SEARCH_WORD"} 
{"index" : {"_index" : "auto_complete", "_type" : "search_word"}} 
{"word" : "och VVS ab", "word_type":"WEAK_SEARCH_WORD"} 
{"index" : {"_index" : "auto_complete", "_type" : "search_word"}} 
{"word" : "vvs och rörjouren", "word_type":"NAME"} 
{"index" : {"_index" : "auto_complete", "_type" : "search_word"}} 
{"word" : "vvs & rörjouren", "word_type":"NAME"} 
{"index" : {"_index" : "auto_complete", "_type" : "search_word"}} 
{"word" : "rot och vvs", "word_type":"NAME"} 
{"index" : {"_index" : "auto_complete", "_type" : "search_word"}} 
{"word" : "vvsjouren", "word_type":"NAME"} 
{"index" : {"_index" : "auto_complete", "_type" : "search_word"}} 
{"word" : "vvs-jouren", "word_type":"NAME"} 
' 

sizin için bir test sorgusu:

curl -XGET 'http://127.0.0.1:9200/auto_complete/search_word/_search?pretty=1' -d ' 
{ 
    "query": { 
     "bool": { 
      "should": [ 
       { 
        "text": { 
         "search_word.ngrams": { 
          "operator": "and", 
          "query": "vvs" 
         } 
        } 
       }, 
       { 
        "text": { 
         "search_word.full": { 
          "boost": 1, 
          "query": "vvs" 
         } 
        } 
       } 
      ] 
     } 
    } 
} 
' 

Testi yaparken örneği varsayılan modda çalıştırıyorum. Şu anda yaklaşık 1 milyon dokümana sahibim.

Yaparsam:

curl http://127.0.0.1:9200/auto_complete/_stats?pretty=1 

alıyorum:

    : Ben configuration aracılığıyla okudum

    { 
        "auto_complete": { 
         "primaries": { 
          "docs": { 
           "count": 971133, 
           "deleted": 0 
          }, 
          "store": { 
           "size": "224.6mb", 
           "size_in_bytes": 235552784, 
           "throttle_time": "0s", 
           "throttle_time_in_millis": 0 
          }, 
          "indexing": { 
           "index_total": 971126, 
           "index_time": "4m", 
           "index_time_in_millis": 242450, 
           "index_current": 0, 
           "delete_total": 0, 
           "delete_time": "0s", 
           "delete_time_in_millis": 0, 
           "delete_current": 0 
          }, 
          "get": { 
           "total": 0, 
           "time": "0s", 
           "time_in_millis": 0, 
           "exists_total": 0, 
           "exists_time": "0s", 
           "exists_time_in_millis": 0, 
           "missing_total": 0, 
           "missing_time": "0s", 
           "missing_time_in_millis": 0, 
           "current": 0 
          }, 
          "search": { 
           "query_total": 45, 
           "query_time": "1.1s", 
           "query_time_in_millis": 1152, 
           "query_current": 0, 
           "fetch_total": 35, 
           "fetch_time": "50ms", 
           "fetch_time_in_millis": 50, 
           "fetch_current": 0 
          } 
         }, 
         "total": { 
          "docs": { 
           "count": 971133, 
           "deleted": 0 
          }, 
          "store": { 
           "size": "224.6mb", 
           "size_in_bytes": 235552784, 
           "throttle_time": "0s", 
           "throttle_time_in_millis": 0 
          }, 
          "indexing": { 
           "index_total": 971126, 
           "index_time": "4m", 
           "index_time_in_millis": 242450, 
           "index_current": 0, 
           "delete_total": 0, 
           "delete_time": "0s", 
           "delete_time_in_millis": 0, 
           "delete_current": 0 
          }, 
          "get": { 
           "total": 0, 
           "time": "0s", 
           "time_in_millis": 0, 
           "exists_total": 0, 
           "exists_time": "0s", 
           "exists_time_in_millis": 0, 
           "missing_total": 0, 
           "missing_time": "0s", 
           "missing_time_in_millis": 0, 
           "current": 0 
          }, 
          "search": { 
           "query_total": 45, 
           "query_time": "1.1s", 
           "query_time_in_millis": 1152, 
           "query_current": 0, 
           "fetch_total": 35, 
           "fetch_time": "50ms", 
           "fetch_time_in_millis": 50, 
           "fetch_current": 0 
          } 
         } 
        } 
    } 
    

    ama ne isterim kontrol listesi çeşit

  1. Günlük dosyalarını değiştir
  2. Dizininizin çıkarın X düğümlerini kullanmalıdır ve Y
  3. replicas X gibi görünüyor beri endeks Eğer X'e -Xmx ve -Xms belirlesin X ve Y
  4. benziyor yana tüm güzel sorgularda
  5. En çok kullanılan sorgularınız için onları ısınmanız gerekir
  6. "_all" kümesini kullanmıyorsanız "_all": {"etkin": false}
  7. ?

Yani ne burada aramak oluyor: Hikayeniz üretim ve yapılandırma ne tür yaptın hareket Dizininizin sorunsuz çalışmasını yapmak nedir . Benim için ya da üretime geçen için herhangi bir tavsiyen var mı?

cevap

2

bu blogpost bir "ELASTICSEARCH UÇUŞ ÖNCESİ KONTROL LİSTESİ" bulabilirsiniz: temel konfigürasyonu, bellek ayarlarını, ad çözünürlüğünü ve çok daha fazlası kapsar

http://asquera.de/opensource/2012/11/25/elasticsearch-pre-flight-checklist/

.

+0

Evet, tam olarak! Ancak cevabınızı, yalnızca burada tartışıldığı gibi bir bağlantı içermemesi için güncelleyin: http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good- cevaplar? lq = 1 ve doğru olarak kontrol edeceğim! – jakob