Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 4

0
votes
answers
71 views
+10

ElasticSearch - 地理位置陣列上的空間搜索

0

我正在創建兩種類型的餐廳和分支與春季數據的索引。餐廳有許多分店作爲嵌套式。當我創建這個映射時,Spring Data/ElasticSearch自動將分支類型內的位置字段轉換爲緯度,經度數組,因此地理空間查詢是不可能的。這裏是:ElasticSearch - 地理位置陣列上的空間搜索

我想要在地理空間搜索的branch.location執行搜索,但彈性搜索不處理位置作爲地點,而是一個字符串數組,因此這是不可能的,請建議我需要什麼做什麼或哪裏出錯。

class Restaurant { 
    @Field(type = FieldType.Nested) 
    private List<Branch> branches = new ArrayList<Branch>(); 
} 

class Branch { 
    private GeoPoint location; 
} 
沙发
0
0

確保您使用的

org.springframework.data.elasticsearch.core.geo.GeoPoint

而且不

org.elasticsearch.common.geo。 GeoPoint

或者(也許更好),定義mappin g,而不是讓spring/elasticsearch爲你做。

0
votes
answers
38 views
+10

Elasticsearch布爾結果是不正確

0

我有使用elasticsearch搜索查詢,並在某些情況下,當我搜索了boolean場,我可以看到有相反我在搜索結果的..Elasticsearch布爾結果是不正確

這是我的搜索查詢:

[ 
    "sort" => [ 
    [ 
     "_score" => "desc" 
    ] 
    ] 
    "size" => 50 
    "from" => 0 
    "terminate_after" => 100 
    "query" => [ 
    "bool" => [ 
     "must" => [ 
      [ 
      "query_string" => [ 
       "query" => "sales*" 
       "analyze_wildcard" => true 
       "default_operator" => "AND" 
       "boost" => 1 
       ] 
      ] 
      [ 
      "bool" => [ 
       "should" => [ 
       [ 
        "match" => ["gender" => 0] 
       ] 
       ] 
      ] 
     ] 
     ] 
     "must_not" => [] 
    ] 
    ] 
] 

例如,我有每頁50個結果,我看到40號我的結果有gender = 0,但其中10 gender = 1,我嘗試用term queries但正如我預料它沒有工作..我不想要任何性別的值爲1.

在elasticsearch文件我找不到任何關於我的任何問題,如果任何人有任何文檔或解決方案,讓我知道..提前

感謝

沙发
0
0

我彈搜索陣列上的一些變化後,我試圖filter search對於我的確切值,現在它按我的預期工作。

這是我現在的代碼:

[ 
    "sort" => [ 
    [ 
     "_score" => "desc" 
    ] 
    ] 
    "size" => 50 
    "from" => 100 
    "terminate_after" => 100 
    "query" => [ 
    "bool" => [ 
     "must" => [ 
     [ 
      "query_string" => [ 
      "query" => "sales*" 
      "analyze_wildcard" => true 
      "default_operator" => "AND" 
      "boost" => 1 
      ] 
     ] 
     ] 
     "filter" => [ 
      [ 
      "bool" => [ 
       "should" => [ 
       [ 
        "term" => ["gender" => 0] 
       ] 
       ] 
      ] 
      ] 
     ] 
     "must_not" => [] 
     ] 
    ] 
] 
0
votes
answers
59 views
+10

Elasticsearch Java API查詢JSON解析器

1

所以我有一個elasticsearch數據庫,我用它來存儲聯繫人。我做下面的查詢。Elasticsearch Java API查詢JSON解析器

public String getAllContacts() throws IOException { 

    SearchResponse response = client.prepareSearch("contact").get(); 

    return response.toString(); 
} 

於是我得到這樣 Json result from query

一個結果,那麼我想提出的JSON數據到我的聯繫對象類

import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 
import javax.xml.bind.annotation.XmlRootElement; 
import java.util.Date; 
@JsonIgnoreProperties(ignoreUnknown = true) 
@XmlRootElement 
public class Contact { 

    private long id; 
    private String name; 
    private Date date; 

    public Contact() {} 
    public Contact(long id, String name, Date date) { 
     this.id = id; 
     this.name = name; 
     this.date = date; 
    } 
    public long getId() {return id;} 
    public void setId(long id) {this.id = id;} 
    public String getName() { return name;} 
    public void setName(String name) {this.name = name;} 
    public Date getDate() { return date; } 
    public void setDate(Date date) { this.date = date; } 
} 

後來我但是,當我嘗試映射JSON反對使用下面的代碼我得到的錯誤

ObjectMapper mapper = new ObjectMapper(); 
    List<Contact> myObjects = mapper 
.readValue(response.toString(), mapper 
.getTypeFactory() 
.constructCollectionType(List.class, Contact.class)); 

其中之一許多錯誤

Can not deserialize instance of java.util.ArrayList out of START_OBJECT token 

,所以我認爲這個問題是所有這些來自查詢,如果我得到一個乾淨的JSON這樣{"id":"2","name";"dinu"}它的工作原理其他的東西(我沒有手動測試),但它與許多其他的東西,例如作爲JSON文件(標題元數據)的頂部(檢查上面的JSON結果圖像)。

所以我覺得我有2個選擇: -

選項1: - 得到elasticsearch DB乾淨的結果,所以我需要修改的搜索查詢。我不知道彈性搜索是否可以實現。如果是的話,有人可以提出如何修改查詢的建議(在Java API中)。

選項2: - 篩選出JSON文件並刪除所有不需要的東西,然後將其變爲Contact對象。我試圖GSON和傑克遜都與未經過濾的文件失敗。如果有任何先進或自定義的方式來過濾讓我知道。

選項3: - 我完全錯了,有一個更好的簡單的方法來做它。請讓我知道。

UPDATE 看這個: - https://www.youtube.com/watch?v=YgKcVBbvy2U

,所以我試圖用GSON將序列

則異常不來,但系列化的「意外‘d’」後,我得到響應上述方式也在原始的甲酸鹽中,它每次輸出這個[email protected]我發送一個GET響應@符號更改後的文本。

沙发
0
3

設定值到相應的對象的方法您需要對搜索匹配和反序列化值執行迭代。

SearchResponse response = client.prepareSearch("contact").get(); 
ObjectMapper mapper = new ObjectMapper(); 
List<Contact> lst = new ArrayList<Contact>(); 
for(SearchHit hit : response.getHits().getHits()) { 
    Contact c = mapper.readValue(hit.getSourceAsString(), Contact.class); 
    lst.add(c); 
} 

如果您需要再次s erialize它作爲一個JSON列表,你可以簡單地得到作爲JSON

String lstString = mapper.writeValueAsString(lst); 

上面提到的ObjectMapper距離Jackson數據綁定庫。這是非常好的,比Gson

import com.fasterxml.jackson.databind.ObjectMapper; 
板凳
0
0

從響應JSON中,hits:標籤應該是包含屬性index,type,id,score,source..etc的列表。請嘗試檢索包含具有聯繫人的對象的匹配列表對象

+0

我想要做的是刪除命中列表對象,只獲取JSON格式的聯繫人數據。 – Dinushka

地板
0
0

不確定這是否有助於獲得您要查找的內容。我只是將你的字符串添加到文本文件中

Object obj = new JSONParser()。parse(new FileReader(「data。TXT 「));

// typecasting obj to JSONObject 
    JSONObject jo = (JSONObject) obj; 

    // getting hits 
    Map hits = ((Map)jo.get("hits")); 
    JSONArray array = null; 
    // iterating hits Map 
    Iterator<Map.Entry> itr1 = hits.entrySet().iterator(); 
    while (itr1.hasNext()) { 
     Map.Entry pair = itr1.next(); 
     System.out.println(pair.getKey() + " : " + pair.getValue()); 
     if(pair.getKey().equals("hits")){ 
      array = (JSONArray) pair.getValue(); 

     } 
    } 

    System.out.println(array); 

[{」 _index 「:」 接觸 「 」_類型「: 」ID「, 」_ ID「:2 」_分數「:1},{ 」_索引「:」 接觸」, 「_類型」: 「ID」, 「_ ID」:4, 「_分數」:1}]

你或許可以寫可以通過迭代JSON陣列

0
votes
answers
101 views
+10

「where .. in」模擬elasticsearch與Java API

0

我是ElasticSearch的新手。 我在我的User類中有一個字符串字段,代表UserStatus,我需要搜索處於特定狀態的所有用戶。 在關係數據庫中,它完全是「where .. in」。「where .. in」模擬elasticsearch與Java API

我看到的例子,使用termsQuery在不同的組合,但我沒有設法使他們工作(查詢返回什麼都沒有)。

所以,問題是:有沒有鏈接,顯示整個例子或某人面臨這樣的問題? 任何幫助都很高興!

//實體本身

@AllArgsConstructor 
    @NoArgsConstructor 
    @Data 
    @Builder 
    @Document(indexName = "users", type = "user") 
    public class User { 

     @Id 
     private String id; 

     private String userStatus; 
     private String firstName; 
     private String lastName; 
     private Date dateCreated; 
    } 

//一個彈簧服務方法

@Override 
public List<User> findByParams(UserSearchRequest userSearchRequest) { 

    TermsQueryBuilder termsQueryBuilder = QueryBuilders 
      .termsQuery("userStatus", userSearchRequest.getUserStatuses()); 


    SearchQuery searchQuery = new NativeSearchQueryBuilder() 
      .withQuery(boolQuery().must(termsQueryBuilder)) 
      .withPageable(new PageRequest(0, 100)) 
      .build(); 


    return Lists.newArrayList(userRepository.search(searchQuery)); 

} 

// REST請求對象

@AllArgsConstructor 
@NoArgsConstructor 
@Data 
public class UserSearchRequest { 
    private List<String> userStatuses; 
} 
+1

你嘗試運行直接查詢到elasticsearch(捲曲或某種基於Web的用戶界面),而不是通過Java ?通常這就是幫助我 – sfat

+0

我同意@sfat,嘗試與直接彈性搜索查詢。以下是基於特定條件檢索值的查詢。 – Sree

+0

下面是一個查詢{「query」:{「constant_score」:{「filter」:{「bool」:{「should」:[{「term」:{「employee」:「foo」}}]}} }}}。方法 - >發佈,網址 - > http:// localhost:9200///_search。 – Sree

沙发
0
0

檢查Elasticsearch的文檔"Finding Multiple Exact Values"

基本上,您需要將自己的術語搜索到一個常數分數查詢中。

從Elasticsearch DOC(保留給後人)

GET /my_store/products/_search 
{ 
    "query" : { 
     "constant_score" : { 
      "filter" : { 
       "terms" : { 
        "price" : [20, 30] 
       } 
      } 
     } 
    } 
} 

這個例子說,搜索的有價產品20或30

你需要的是搜索所有具有用戶userStatus您作爲List傳遞的任一值。

在你需要改變你的NativeSearchQueryBuilder在這樣的實施方面:

SearchQuery searchQuery = new NativeSearchQueryBuilder() 
       .withQuery(constantScoreQuery(termsQueryBuilder)) 
       .withPageable(new PageRequest(0, 100)) 
       .build(); 
0
votes
answers
44 views
+10

使用CTX查詢Elasticsearch更新

1

我想更新索引內的所有文檔。我發現Update Query是我們應該使用的方法。但是,當我將ctx._now用作更新文檔字段的值時,我遇到了問題,導致字段值爲空。使用CTX查詢Elasticsearch更新

這是樣板:

{ 
 
    "script": { 
 
    "inline": "ctx._source.timenow = ctx._now" 
 
    }, 
 
    "query": { 
 
    "match_all": {} 
 
    } 
 
}

timenow evidence

當我使用的隨機數值,它是工作。假設我將timenow = 5。然後,所有文檔字段timenow變爲5.但是,使用此ctx方法不起作用。

我該怎麼做?

其他信息

這是我的ES信息:

"version" : { 
 
    "number" : "5.5.1", 
 
    "build_hash" : "19c13d0", 
 
    "build_date" : "2017-07-18T20:44:24.823Z", 
 
    "build_snapshot" : false, 
 
    "lucene_version" : "6.6.0" 
 
    }

我使用ctx._now,因爲它是在文件更新工作。下面是的情況下:

{ 
 
    "script": "ctx._source.timenow2 = ctx._now" 
 
}

實施例:POST索引/類型/ 24/_Update

這裏是由彈性文檔:

除了_Source,以下變量可通過ctx映射獲得:_index,_type,_id,_version,_routing和_now(當前時間戳)。

https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update.html

謝謝

+0

你在哪裏看到'ctx._now'?你使用什麼版本的ES? – Val

+0

如果所有的timenows都更新爲null,這意味着'_now'不是'ctx'上的字段。是什麼讓你使用'_now'(你在哪裏找到關於它的信息)?嘗試設置'timenow'值爲'Instant.now()'或類似的東西,看看它是如何工作的。 – ryanlutgen

+0

我有更新我的問題添加ctx._now。我如何使用Instant.now()? –

沙发
0
1

_now只是更新API,即在打電話時,請在_update端點,不_update_by_query

使用這個代替:

{ 
    "script": { 
    "inline": "ctx._source.timenow = Instant.now().toEpochMilli()" 
    }, 
    "query": { 
    "match_all": {} 
    } 
} 
+0

謝謝,這是更快的Instant.now或新的日期().getTime()?我在其他網站上發現了新的Date()。getTime()。 –

+0

最快的是'System.currentTimeMillis()'這是'Instant.now()'在 – Val

+0

下使用的內容嗨,我已經嘗試過了,它效果很好。非常感謝你 –

0
votes
answers
64 views
+10

Elasticsearch動態模板匹配幾個確切的字段

0

我目前正在努力簡化Elasticsearch的映射模板文件。事實上,我有幾個Object字段具有相同的結構(例如源和目標)Elasticsearch動態模板匹配幾個確切的字段

有沒有辦法設置動態模板,以便它可以匹配多個模式?

這是我執行:

POST /_template/mapping-lol 
{ 
    "template": "*-newevents-*", 
    "mappings": { 
    "log": { 
     "dynamic_templates": [ 
     { 
      "system": { 
      "match_pattern": "regex", 
      "match": "^(source|destination)$", 
      "mapping": { 
       "properties": { 
       "name": { 
        "dynamic": false, 
        "type": "object", 
        "properties": { 
        "first": { 
         "type": "text" 
        }, 
        "last": { 
         "type": "text" 
        } 
        } 
       }, 
       "ip": { 
        "type": "ip" 
       } 
       } 
      } 
      } 
     } 
     ], 
     "properties": { 
     "source": { 
      "type": "object", 
      "dynamic": true 
     }, 
     "destination": { 
      "type": "object", 
      "dynamic": true 
     } 
     } 
    } 
    } 
} 

POST /tenant-newevents-1/log 
{ 
    "source": { 
    "name": { 
     "first": "John", 
     "last": "Doe" 
    }, 
    "ip": "1.2.3.4" 
    }, 
    "destination": { 
    "name": { 
     "first": "Jane", 
     "last": "Doe" 
    }, 
    "ip": "3.4.5.6" 
    } 
} 

GET /tenant-newevents-1 

這上面沒有工作...

我有的是這些相同的方案來匹配(?20)。

非常感謝您的幫助!

+0

看起來不錯。剛剛嘗試過ES 5和6,並且運行良好。請說明你如何創建索引/映射? – Val

+0

curl -XPOST「locallhost:9200/_template/mapping-events」[email protected] – moutonjr

+0

好的一個!那麼mymapping.json的內容呢? – Val

沙发
0
0

OK我發現出了什麼問題:字段不能映射在所有動態映射繼續。在映射工作中刪除「源」和「目標」方案。

POST /_template/mapping-lol 
{ 
    "template": "*-newevents-*", 
    "mappings": { 
    "log": { 
     "dynamic_templates": [ 
     { 
      "system": { 
      "match_pattern": "regex", 
      "match": "^(source|destination)$", 
      "mapping": { 
       "properties": { 
       "name": { 
        "dynamic": false, 
        "type": "object", 
        "properties": { 
        "first": { 
         "type": "text" 
        }, 
        "last": { 
         "type": "text" 
        } 
        } 
       }, 
       "ip": { 
        "type": "ip" 
       } 
       } 
      } 
      } 
     } 
     ], 
     "properties": {} 
    } 
    } 
} 
+0

這是我的下一個評論;-)如果你有他們的動態模板映射他們沒有意義。 – Val

0
votes
answers
64 views
+10

Rails的 - 如何searchkick過濾字符串字段?

1

在軌,我使用searchkick寶石搜索。我需要爲過濾器添加一個名爲status的字符串字段。我怎樣才能添加到這個插件?Rails的 - 如何searchkick過濾字符串字段?

已經我提出關於這個問題Rails - How to add more fields for filter in searchkick?

現在我用繩子場,而不是試圖布爾搜索仍不能正常工作一個問題。請幫助我一樣。

我添加了一個條件像where: {status: 'approved'},按照這個條件,我應該得到的只有活躍用戶(不是「刪除」的用戶)。目前沒有搜索數據顯示。

searchkick word_start: [:name] 

def initialize(name, limit = User::SUGGESTION_LIMIT, page = nil) 
    @name = name 
    @limit = limit 
    @page = page 
    @per_page = limit.to_i 
end 

query = { 
    match: :word_start, 
    where: {status: 'approved'}, 
    fields: [{ emails: "exact" }, "name^5"], 
    misspellings: { prefix_length: 2 }, 
    load: false 
} 

User.search(name, query).records 

我也已經加入過濾像searchkick word_start: [:name], filterable: [:status]

Server日誌嘗試是,

Processing by UsersController#search as JSON 
Parameters: {"query"=>"sal"} 
ETHON: Libcurl initialized 
ETHON: performed EASY 
effective_url=http://elastic:[email protected]:9200/users-some_index-en/_search response_code=200 return_code=ok total_time=0.498938 
User Search (589.3ms) curl http://14.127.18.141:9200/users-some_index-en/_search?pretty -d '{"query":{"bool":{"must":{"dis_max":{"queries":[{"match":{"emails.true":{"query":"sal","boost":10,"operator":"and","analyzer":"searchkick_autocomplete_search"}}},{"match":{"emails.true":{"query":"sal","boost":1,"operator":"and","analyzer":"searchkick_autocomplete_search","fuzziness":1,"prefix_length":2,"max_expansions":3,"fuzzy_transpositions":true}}},{"bool":{"must":{"bool":{"should":[{"match":{"name.word_start":{"query":"sal","boost":50.0,"operator":"and","analyzer":"searchkick_word_search"}}},{"match":{"name.word_start":{"query":"sal","boost":5.0,"operator":"and","analyzer":"searchkick_word_search","fuzziness":1,"prefix_length":2,"max_expansions":3,"fuzzy_transpositions":true}}}]}},"should":{"match":{"name.analyzed":{"query":"sal","boost":50.0,"operator":"and","analyzer":"searchkick_word_search"}}}}}]}},"filter":[{"term":{"status":"approved"}}]}},"size":5,"from":0,"timeout":"11s"}' 
User Load (0.8ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]] 
ETHON: performed EASY effective_url=http://elastic:[email protected]:9200/entities-some_index-en/_search response_code=200 return_code=ok total_time=0.251783 
+0

你添加的代碼段的after_update是不夠的,我們理解你想要什麼。添加更多代碼。 –

+0

問題已更新。 –

沙发
0
1

更改scope :search_import根據你的病情和修改should_index?方法一樣,

def should_index? 
    User.search_import 
end 

更改後,請致電rei ndex單獨的任何數據

0
votes
answers
43 views
+10

春季啓動+彈性數據彈性搜索+彈性搜索5.6.0

1

我試圖用彈性搜索5.4.1構建一個Spring Boot App(1.5.9.RELEASE),當我運行maven> install春季啓動+彈性數據彈性搜索+彈性搜索5.6.0

??

我的pom.xml的是

<properties> 
    ... 
    <elasticsearch.version>5.4.1</elasticsearch.version> 
</properties> 
<repositories> 
    <repository> 
     <id>spring-libs-snapshot</id> 
     <name>Spring Snapshot Repository</name> 
     <url>http://repo.spring.io/libs-snapshot</url> 
    </repository> 
</repositories> 
<dependencies> 
    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-elasticsearch</artifactId> 
     <version>3.0.0.RC2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-elasticsearch</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.elasticsearch.client</groupId> 
     <artifactId>transport</artifactId> 
     <version>5.1.1</version> 
    </dependency><dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter</artifactId> 
    </dependency><dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-commons-core</artifactId> 
     <version>1.0.0.RELEASE</version> 
    </dependency> 

任何幫助將受到歡迎,謝謝!

沙发
0
2

這是由於spring-data-elasticsearch,elasticsearch和springboot之間的兼容性問題。
看一看這一點,並相應地改變

https://github.com/spring-projects/spring-data-elasticsearch/wiki/Spring-Data-Elasticsearch---Spring-Boot---version-matrix

+0

謝謝,我會看看 –

0
votes
answers
69 views
+10

Logstash和彈性升級

1

我在5.1版上有一個功能性Logstash和Elasticsearch。Logstash和彈性升級

我刪除了所有索引,然後升級到6.1。

現在,當Logstash接收來自Filebeat(這劇照5.1版)的一些事件,它拋出這個錯誤:

[2017-12-27T17:29:16,463][WARN ][logstash.outputs.elasticsearch] Could not index event to Elasticsearch. 
{ 
    :status => 400, 
    :action => ["index", {:_id=>nil, :_index=>"logstash-2017.12.27", :_type=>"doc", :_routing=>nil}, #<LogStash::Event:0x34de85bd>], 
    :response => { 
    "index" => { 
     "_index" => "logstash-2017.12.27", 
     "_type" => "doc", 
     "_id" => nil, 
     "status" => 400, 
     "error" => { 
     "type" => "mapper_parsing_exception", 
     "reason" => "Failed to parse mapping [_default_]: [include_in_all] is not allowed for indices created on or after version 6.0.0 as [_all] is deprecated. As a replacement, you can use an [copy_to] on mapping fields to create your own catch all field.", 
     "caused_by" => { 
      "type" => "mapper_parsing_exception", 
      "reason" => "[include_in_all] is not allowed for indices created on or after version 6.0.0 as [_all] is deprecated. As a replacement, you can use an [copy_to] on mapping fields to create your own catch all field." 
     } 
     } 
    } 
    } 
} 

使用非常簡單的管道我甚至試過了,你可以在這裏看到:

input { 
    beats { 
    port => 5044 
    } 
} 

filter { 
    json { 
     source => "message" 
    } 
} 

output { 
    elasticsearch { hosts => ["localhost:9200"] } 
} 

但它一遍又一遍地拋出這個錯誤。

任何想法在這裏可能是錯的?

沙发
0
1

看看changes in mapping, introduced in elasticsearch 6.0

你需要從你的索引模板中刪除include_in_all映射參數。

你可以在這裏粘貼你的模板/映射嗎?

+0

非常感謝這個洞察力,現在它工作的很好。 我通過刪除這些字段或簡單地刪除模板並讓新日誌隱藏再次創建它來工作。 一般而言,它再次證明我讀取主要版本的更改日誌非常值得。 – Navarro

+0

@Navarro - 你如何刪除模板? – Wjdavis5

板凳
0
0

這個答案只是擴展@alexanderlz說的。從kibana的DevTools頁我跑了這一點:

GET /_template/ 

,列出了所有的模板

這裏我們需要刪除/修改(部分)的模板:

"logstash": { 
    "order": 0, 
    "version": 60001, 
    "index_patterns": [ 
     "logstash-*" 
    ], 

因此然後運行

DELETE /_template/logstash 

一旦完成,重新啓動logstash,它將重新安裝一個新的正確的模板。

0
votes
answers
64 views
+10

ElasticSearch 1.1.2無法正常啓動

0

我正在爲我的公司升級ElasticSearch。爲了開始這個,我需要運行我的機器上運行OSX Sierra(10.12.6)的舊版本(1.1.2)。我從我公司的存儲庫下載了[email protected],但沒有正確啓動。我得到這個:ElasticSearch 1.1.2無法正常啓動

$ brew services list 
Name    Status User  Plist 
[email protected] started pjscopeland /Users/pjscopeland/Library/LaunchAgents/[email protected] 

...但自制的地位「started」是黃色的,在這裏他們的休息是綠色的,如果我手動運行它,我得到這個:

$ elasticsearch 
Java HotSpot(TM) 64-Bit Server VM warning: Option UseParNewGC was deprecated in version 9.0 and will likely be removed in a future release. 
Java HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release. 
Exception in thread "main" java.lang.ExceptionInInitializerError 
    at org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.java:190) 
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:32) 
Caused by: java.lang.UnsupportedOperationException: Boot class path mechanism is not supported 
    at java.management/sun.management.RuntimeImpl.getBootClassPath(RuntimeImpl.java:99) 
    at org.elasticsearch.monitor.jvm.JvmInfo.<clinit>(JvmInfo.java:77) 
    ... 2 more 

NB。請記住,我的Java技能處於我可能只能讀取它的級別,但可能無法解決任何可能需要更改的內容。

+0

黃色是好的。在ES 2.4黃色意味着你只有1個數據節點。你有沒有嘗試連接到服務器?順便說一句:如果您在生產計算機上安裝副本時遇到問題(爲HTTP和二進制協議提供不同的端口) – bato3

+1

這不是ElasticSearch黃色,這是自制黃色。該服務尚未正常啓動。我在我的文章中澄清了這一點。 – PJSCopeland

沙发
0
5

看起來你有Java的9安裝:

的HotSpot的Java(TM)64位服務器VM警告:選項UseParNewGC被棄用9.0版本,並可能會在未來的版本中刪除。

雖然ElasticSearch不支持它。

根據this matrix,從2.3到5.6的任何ES版本都不支持Java 9; ES 1.x沒有被列出,因爲它不再被支持。

還有一個issue與logstash(ElasticSearch的一個組件)有相似的堆棧跟蹤。

,您張貼

由導致異常:java.lang.UnsupportedOperationException:引導類路徑機制不支持

表明,有一些錯誤的JVM。類別RuntimeImpl發生異常。

我建議你檢查你的生產機器上安裝了哪個版本的Java並安裝在你的機器上。有關如何在Mac上管理不同版本Java的提示,您可以在此查看SO question

希望有幫助!

+0

完美!有些兔子洞會讓所有的東西都安裝正確 - JEnv對於那些更習慣於RVM的人來說不太直觀 - 但是在所有鏈接之後,我設法達到了目標。謝謝! – PJSCopeland

+1

棘手的部分是告訴_service_使用Java 8而不是9.我完全放棄並卸載了Java 9,並且服務完美啓動。 – PJSCopeland

+0

@PJSCopeland很高興你管理! –