私はあなたが2つのトークンにhttp://example.dom
を分割standard
アナライザを使用していると思います:
は、私は以下のインデックスを作成しました。あなたは見てみることができます
http://localhost:9200/_analyze?text=http://example.com&analyzer=standard
。
url
を分割する場合は、別のanalyzerを使用するか、独自のcustom analyzerを指定する必要があります。
url
はsimple analyzer - http://localhost:9200/_analyze?text=http://example.com&analyzer=simple
となります。ご覧のとおり、は3つのトークン['http', 'example', 'com']
として索引付けされています。 ['http', 'www']
などのようなトークンを索引化しない場合は、lowercase tokenizer(これは単純なアナライザで使用されるもの)とstop filterでアナライザを指定できます。例えば、このような何か:
# Delete index
#
curl -s -XDELETE 'http://localhost:9200/url-test/' ; echo
# Create index with mapping and custom index
#
curl -s -XPUT 'http://localhost:9200/url-test/' -d '{
"mappings": {
"document": {
"properties": {
"content": {
"type": "string",
"analyzer" : "lowercase_with_stopwords"
}
}
}
},
"settings" : {
"index" : {
"number_of_shards" : 1,
"number_of_replicas" : 0
},
"analysis": {
"filter" : {
"stopwords_filter" : {
"type" : "stop",
"stopwords" : ["http", "https", "ftp", "www"]
}
},
"analyzer": {
"lowercase_with_stopwords": {
"type": "custom",
"tokenizer": "lowercase",
"filter": [ "stopwords_filter" ]
}
}
}
}
}' ; echo
curl -s -XGET 'http://localhost:9200/url-test/_analyze?text=http://example.com&analyzer=lowercase_with_stopwords&pretty'
# Index document
#
curl -s -XPUT 'http://localhost:9200/url-test/document/1?pretty=true' -d '{
"content" : "Small content with URL http://example.com."
}'
# Refresh index
#
curl -s -XPOST 'http://localhost:9200/url-test/_refresh'
# Try to search document
#
curl -s -XGET 'http://localhost:9200/url-test/_search?pretty' -d '{
"query" : {
"query_string" : {
"query" : "content:example"
}
}
}'
メモ:ストップワード、ここで使用することを好まない場合は、興味深い記事がstop stopping stop words: a look at common terms query
感謝@vhyzaです。インデックスの作成方法に関する質問を更新しました。私は入れ子になったプロパティを持ち、htmlを取り除きたい。 –
ようこそ。ネストされたプロパティは問題ありません。必要に応じて、 'lowercase_with_stopwords'に 'char_filter'を追加してhtmlを取り除くことができます。 – vhyza