大きな間違いを犯していることは確かですが、それを並べ替える方法がわかりません。
私のcouchdbリバーと私のインデックスは次のように定義されています:
curl -XPUT 'localhost:9200/_river/my_index/_meta' -d '{
"type" : "couchdb",
"couchdb" : {
"host" : "localhost",
"port" : 5984,
"db" : "my_db",
"filter" : null
},
"index" : {
"index" : "my_index",
"type" : "my_index_type",
"bulk_size" : "100",
"bulk_timeout" : "10ms",
"analysis": {
"analyzer": {
"tags_analyzer": {
"type" : "custom",
"tokenizer": "lowercase",
"filter": ["lowercase", "asciifolding"]
}
}
}
},
"mappings": {
"tags": {
"properties": {
"tags": {
"type": "string",
"analyzer": "tags_analyzer",
"boost": 10
}
}
}
}}'
クエリは、JAVA アプリケーションを介して実行されます。
QueryStringQueryBuilder queryBuilder = QueryBuilders.queryString(req.getParameter("tags"));
queryBuilder.defaultField("tags");
queryBuilder.analyzer("tags_analyzer");
queryBuilder.analyzeWildcard(true);
queryBuilder.lowercaseExpandedTerms(true);
queryBuilder.defaultOperator(QueryStringQueryBuilder.Operator.AND);
SearchResponse response = client.prepareSearch("idxscopus").setSearchType(SearchType.QUERY_THEN_FETCH).setQuery(queryBuilder)
.addHighlightedField("tags", 0, 0)
.setFrom(0).setExplain(true).execute().actionGet();
クエリ フェーズ中に、カスタム アナライザーが見つからないことを示す QueryParsingException に直面しています。
omqueryery_stringb*default_fieldCtagsdefault_operatorBandanalyzerLtags_analyzerlowercase_expanded_terms#analyze_wildcard#xplain#highlighteldsgsagment_sizenumber_of_fragments;]]]; nested: QueryParsingException[[idxscopus] [query_string] analyzer [tags_analyzer] not found]; }{[BtMQ0EBJQVmFKyJTJMVhSA][idxscopus][1]: RemoteTransportException[[Aardwolf][inet[/10.1.1.2:9300]][search/phase/query]]; nested: SearchParseException[[idxscopus][1]: from[0],size[-1]: Parse Failure [Failed to parse source [:)
私が間違っていることは何ですか?インデックスと検索段階で asciifolding 機能が本当に必要です。
ありがとう!