Azure搜索 - 关键字分析器

时间:2018-03-15 18:54:58

标签: azure-search

我的文档包含以下字段:

public class MainWindowViewModel
{
    MainWindowModel model = new MainWindowModel();

    private ObservableCollection<MainWindowModel> _SourceCollection;
    public ObservableCollection<MainWindowModel> SourceCollection
    {
        get { return _SourceCollection; }
        set { _SourceCollection = value; }
    }

    public MainWindowViewModel()
    {
        SourceCollection = new ObservableCollection<MainWindowModel>();

        for (int i = 0; i < 4; i++)
        {
            model = new MainWindowModel();
            model.CollectionText = "This is line " + i;
            if (i % 2 == 0)
            { model.ForegroundColor = Brushes.Blue; }
            else
            { model.ForegroundColor = Brushes.Green; }
            SourceCollection.Add(model);
        }
    }

    public RelayCommand<KeyEventArgs> KeyDownAction
    {
        get { return new RelayCommand<KeyEventArgs>(KeyDownMethod); }
    }

    private void KeyDownMethod(KeyEventArgs e)
    {
        //some code here 
    }
}

我想要达到的目的是仅在用户输入整数时匹配文档。问题是用户只有单个输入用于搜索查询,并且可以键入例如&#34;超AA BB产品&#34;。我想过关键字分析器,但问题是我不知道搜索查询用户在哪个地方输入了数字,所以我无法搜索超过\&#34; AA BB \ &#34;产物&#34 ;.没有关键字,甚至没有搜索模式&#34;所有&#34;我将获得搜索查询的结果,如&#34;超AA AG产品&#34;

感谢您的任何建议!

1 个答案:

答案 0 :(得分:0)

&#34;数字&#34;在任何特定的模式?请查看检测和替换文本模式的自定义分析组件。具有正则表达式模式([A-Z0-9]{2})\s([A-Z0-9]{2})和替换= "$1_$2"的PatternReplaceCharFilter。给定输入字符串"hello AA BB world",令牌过滤器将分析令牌序列<hello> <AA_BB> <world>,并且搜索将返回与整个&#34;数字匹配的文档&#34; (例如AA_BB)。

希望这会有所帮助。