2016-10-31 2 views
0

私は2週間前から私のプロジェクトでElaticSearch(バージョン2.4.1)を使用しましたが、クエリ文字列にフィールドを指定すると問題があります。
日本のデータを検索するには、黒丸プラグインとn-gramトークナイザを使いたいです。ElasticSearch 2.4.1とKuromojiプラグインが検索クエリに指定されました

私の質問では、フィールド(例: "Content")を指定しないと、結果に2レコードが表示されます。

{ 
    "query" : { 
     "bool" : { 
      "must": { 
       "query_string": { 
        "query":"Software" 
       /*,"fields":["Content"] <-- not specify this field*/ 
       } 
      } 
     } 
    } 
} 

上記のクエリでフィールド「コンテンツ」を使用すると、結果にレコードはありません。 (私のプロジェクトでは、私は、「コンテンツ」フィールドに検索したい。)

私は、ステップ1で属性「ハイライト」を使用しますが、結果は「ハイライト」ブロックに含まれていません

{... 
    "highlight": { 
     "pre_tags" : ["<tag1>"], 
     "post_tags" : ["</tag1>"], 
     "fields" : { 
      "*" : {} /* or use "_all" */ 
     } 
    } 
} 

質問したい:手順2(上記)で、クエリ文字列にはどのフィールドが指定されていますか? product.Content、または他の何か?

倉敷プラグインを使用しない場合、手順2のクエリ結果には2つのレコードがあります。だから、クロモジプラグインは結果に関係していると思う。誰も私にこの問題を手伝うことができますか?ここで

は、YAMLの私のマッピングとconfigです:

{... 
    "mappings": { 
     "product" : { 
      "properties" : { 
       "Content" : { 
        "index": "not_analyzed", 
        "search_analyzer": "ja", 
        "analyzer": "ja", 
        "type": "string", 
        "store": true 
       } ... 
      } 
     } 
    } 
} 

index : 
analysis : 
    analyzer : 
    ja : 
    type : custom 
    tokenizer : ja_tokenizer 
    char_filter : [ 
    html_strip, 
    kuromoji_iteration_mark 
    ] 
    filter : [ 
    lowercase, 
    cjk_width, 
    katakana_stemmer, 
    kuromoji_part_of_speech 
    ] 
    ja_ngram : 
    type : custom 
    tokenizer : ngram_ja_tokenizer 
    char_filter : [html_strip] 
    filter : [ 
     cjk_width, 
     lowercase 
    ] 
    tokenizer : 
    ja_tokenizer : 
    type : kuromoji_tokenizer 
    mode : search 
    user_dictionary : userdict_ja.txt 
    ngram_ja_tokenizer : 
    type : nGram 
    min_gram : 2 
    max_gram : 3 
    token_chars : [letter, digit] 
    filter : 
    katakana_stemmer : 
    type : kuromoji_stemmer 

答えて

0

私は私のマッピングで問題を発見しました。私のマッピングでは、 "Content":{"index": "not_analyzed"}を使用するので、 "Content"フィールドを検索することはできません。 {"index": "analyze"}に変更され、問題が修正されました。

関連する問題