私は Elasticsearch を使用しており、WebRequest を使用して独自のラッパーを作成しています。これは、NEST (通常の選択) が不可解なことに、アイテムを挿入して生成された ID を返す機能を欠いているように見えるためです。
とにかく - 一般的な方法で問題ありません。ただし、HTML コンテンツはそのままインデックス付けされます。つまり<strong>test</strong>
、フィールドにある場合、クエリ「strong」を検索するとアイテムが返されます。
私が見つけたランダムな掲示板の投稿に基づいて、これをelasticsearch.ymlに入れました:
index:
analysis:
analyzer:
htmlContentAnalyzer:
type: custom
tokenizer: standard
filter: standard
char_filter: html_strip
次に、インデックス「コンテンツ」、項目タイプ「ニュース」のマッピングを次のように作成します。
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 を保存したいのですが、念のため。
- エラスティックサーチ情報/ドキュメントのより良いソースはありますか? それとも、極秘解読メガネなしで見ているのでしょうか?