2017-06-12 6 views
0

私はhtmlファイルを持っています。正確な一致文字列のセクションを見つける必要があります。たとえば、 "ANNUAL REPORT PURSUANT"です。私はElasticsearch 5.4.0の最新バージョンを使用しています。私はelasticsearchに新しいです。インデックスのために私は以下のようにアナライザを定義している:Elasticsearch:正確に一致する文字列のオフセットが必要です

{ 
    "index_name": { 
     "settings": { 
      "index": { 
       "number_of_shards": "5", 
       "provided_name": "index_name", 
       "creation_date": "1496927173220", 
       "analysis": { 
        "analyzer": { 
         "contact_section_analyzer": { 
          "tokenizer": "my_tokenizer" 
         } 
        }, 
        "tokenizer": { 
         "my_tokenizer": { 
          "pattern": "(ANNUAL REPORT PURSUANT)", 
          "type": "pattern", 
          "group": "1" 
         } 
        } 
       }, 
       "number_of_replicas": "1", 
       "uuid": "vF3cAe-STJW-GrVxc7N8ww", 
       "version": { 
        "created": "5040099" 
       } 
      } 
     } 
    } 
} 

今、私は以下のように分析し使用してオフセットを取得しようとしています:

POST localhost:9200/sag_sec_items6/_analyze?pretty 
{ 
    "analyzer": "contact_section_analyzer", 
    "text": "my_html_file_contents_already_indexed" 
} 

それが返されます。

{ 
    "tokens": [] 
} 

私はhtmlファイルに彼らをチェックしますそのテキストを含む。

個々の_idsで_searchクエリを使用すると、全体のHTMLファイルが戻されます。 オフセット、またはそのテキストを含むhtmlタグを入手するにはどうすればよいですか?

答えて

0

私は以下のように私のアナライザの設定を再定義:正規表現パターンとCASE_INSENSITIVEを含め、この変更に伴い

"settings": { 
     "analysis": { 
     "analyzer": { 
     "contact_section_start_analyzer": { 
       "char_filter": "html_strip", 
       "tokenizer": "contact_section_start_tokenizer" 
     } 
     }, 
     "tokenizer": { 
     "contact_section_start_tokenizer": { 
       "flags": "CASE_INSENSITIVE|DOTALL", 
       "pattern": "\\b(annual\\s+report\\s+pursuant)\\b", 
       "type": "pattern", 
       "group": "1" 
     } 
     } 
     } 
     } 

|私はオフセットを取得することができていたパターンアナライザでDOTALLフラグを。

関連する問題