Azure Searchでインデックス定義を作成するときに、そのインデックスだけにストップワードを追加する方法はありますか?例えば、道路名を索引付けする場合、Road、Close、Avenueなどを取り除きたいとします。Azure Search - 追加のストップワード
フィールドを検索できないようにすると、すべてのものが1つの用語として索引付けされます。ビルケンコートロード。索引付けされる用語はBirken Courtであろうか。 多くのありがとう
Azure Searchでインデックス定義を作成するときに、そのインデックスだけにストップワードを追加する方法はありますか?例えば、道路名を索引付けする場合、Road、Close、Avenueなどを取り除きたいとします。Azure Search - 追加のストップワード
フィールドを検索できないようにすると、すべてのものが1つの用語として索引付けされます。ビルケンコートロード。索引付けされる用語はBirken Courtであろうか。 多くのありがとう
custom analyzerを使用して追加のストップワードを定義できます。例えば 、私は標準トークナイザ、小文字トークンフィルタと2つのストップワードトークンフィルタ、1を使用テキストフィールドにカスタムアナライザを設定しています。このインデックス定義で
{
"name":"myindex",
"fields":[
{
"name":"id",
"type":"Edm.String",
"key":true,
"searchable":false
},
{
"name":"text",
"type":"Edm.String",
"searchable":true,
"analyzer":"my_analyzer"
}
],
"analyzers":[
{
"name":"my_analyzer",
"@odata.type":"#Microsoft.Azure.Search.CustomAnalyzer",
"tokenizer":"standard_v2",
"tokenFilters":[
"lowercase",
"english_stopwords",
"my_stopwords"
]
}
],
"tokenFilters":[
{
"name":"english_stopwords",
"@odata.type":"#Microsoft.Azure.Search.StopwordsTokenFilter",
"stopwordsList":"english"
},
{
"name":"my_stopwords",
"@odata.type":"#Microsoft.Azure.Search.StopwordsTokenFilter",
"stopwords": ["road", "avenue"]
}
]
}
標準的な英語のストップワードと、ストップワードの追加セットのためのものです。あなたは、例えば、Analyze APIでカスタム・アナライザの動作をテストすることができます
要求:
{
"text":"going up the road",
"analyzer": "my_analyzer"
}
応答:
{
"tokens": [
{
"token": "going",
"startOffset": 0,
"endOffset": 5,
"position": 0
},
{
"token": "up",
"startOffset": 6,
"endOffset": 8,
"position": 1
}
]
}
アナライザが非検索可能なフィールドには適用されません、したがって、あなたの例のストップワードは削除されません。クエリとドキュメント処理の詳細については、How full text search works in Azure Searchを参照してください。
多くのありがとうございます。非常に役立ちます。ストップワードを削除するが、他のものはそのまま残すアナライザを作成する方法はありますか?すなわち、ストップワードに「道路」が含まれている場合、アナライザーはバーケンコートロードを「ビルケンコート」としてトークン化します。再度、感謝します。 – user2981411