2012-10-09 3 views
5

私はElasticsearchを使用していて、WebRequestを使用して独自のラッパーを作成しています(NEST(通常の選択)は困惑してアイテムを挿入し、生成されたIDを返すことができないようです)。elasticsearchインデックスからHTMLコンテンツを除外するにはどうすればよいですか?

とにかく - 一般的な方法で問題はありません。しかし、どのHTMLコンテンツもそのままインデックスされます。つまり、フィールドに<strong>test</strong>がある場合、クエリ「強」を検索するとそのアイテムが返されます。

私は私が見つけたランダム掲示板投稿に基づいて、elasticsearch.ymlでこれを入れている:

index: 
    analysis: 
     analyzer: 
      htmlContentAnalyzer: 
       type: custom 
       tokenizer: standard 
       filter: standard 
       char_filter: html_strip 

その後、私はアイテムタイプ「ニュース」、私のインデックスのコンテンツ 'のthuslyマッピングを作成します:

PUT http://localhost:9200/content/news/_mapping 

{ 
    "news" : { 
     "properties" : { 
      "TextContent" : { 
       "type" : "string", 
       "index" : "analyzed", 
       "analyzer" : "htmlContentAnalyzer", 
       "store" : "yes" 
       } 
      } 
     } 
    } 
} 

store/yesはただ "楽しい" のために、それは違いはありませんです。上記は私に200 OKを与える。

ただし、検索でも同じ結果が返されます。

これは、elasticsearchのドキュメントが厄介なように見えることです。このページをチェックしてください:それはあなたのマッピングが何であるかの簡単な要約を与える、と言う

http://www.elasticsearch.org/guide/reference/api/admin-indices-put-mapping.html

詳細は、このページつまり、マッピング部にあります。

http://www.elasticsearch.org/guide/reference/mapping/

を..本当にひどいと思われる。 「プロパティ」、「タイプ」、「アナライザ」、「インデックス」などは何も言及されていません。右のメニューにはいくつかのセクションがあります。 "_index"が、アイテム全体を参照しているように見えますか?それはどこに指摘されていますか?

だから私の質問は2つの面上にある:

  • は、私は(、およびエンティティ私は推測する属性値)HTMLタグをどのように停止するかをインデックス化していますか? - 私はまだHTMLを保存したい、あなたを念頭に置いて
  • elasticsearch info/documentationの良いソースはありますか?それとも超秘密のデコーダーグラスなしで見ていますか? #elasticsearch(freenodeのIRC)にchrismaleするすべてのクレジットで
+6

Downvoted?私はドキュメンテーションがひどいと言うので、私は推測できますか?まあ、それじゃない?私が間違いや誤解をしている場合は、少なくともコメントを残しておいてください –

答えて

3

-

_allに対して検索には良いです:独自の解析でインデックス化されています。私のTextContentフィールドの質問は、特に期待どおりに機能しました。

+2

また、アナライザーを「デフォルト」にして_allを含むすべてのフィールドに適用することもできます。 (これを行うには、単にelasticsearch.ymlファイルの "htmlContentAnalyzer:"を "default:"と置き換えてください) – imotov

+1

まあ、私は同じ問題に直面しています。マッピングを定義することなく同じことを達成できる方法はありますか? –

+0

@AkshatJiwanSharma ymlファイルのマッピングを定義せずにそれを把握できましたか? –

関連する問題