5

私は 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 を保存したいのですが、念のため。
  • エラスティックサーチ情報/ドキュメントのより良いソースはありますか? それとも、極秘解読メガネなしで見ているのでしょうか?
4

1 に答える 1

3

#elasticsearch (freenode IRC) の chrismale の功績による -

に対して検索するの_allは良くありません。それは独自のアナライザーでインデックス化されています。TextContent私のフィールドでのクエリは、特に期待どおりに機能しました。

于 2012-10-09T23:03:27.167 に答える