У меня есть поле EDM.string, которое я использую для хранения пар ключ-значение, разделенных '||'и запятые.Например:
{
"CustomField": "1234|||student, 5678||blue, 999||metallica, etc..."
}
Мне нужно выполнить запрос для извлечения комбинации ключ-значение.Например:
search=5678 blue&searchFields=CustomField&searchMode=all&queryType=full
Используя регулярное выражение, я ожидал, что сработает следующее:
search=/5678.*blue/&queryType=full&searchMode=all
Я использую анализатор по умолчанию, поэтому кажется, что он игнорирует '||».Я пытался использовать регулярные выражения, но безуспешно.Можно ли выполнить запрос по паре ключ-значение, не сохраняя ее в EDM.Collection (строка)?Я хотел бы избежать нового процесса переиндексации.Заранее спасибо.
Обновление
Использование коллекций и нового набора данных:
{
"@odata.context": "https://[service].search.windows.net/indexes('[index]')/$metadata#docs",
"@odata.count": 3,
"value": [
{
"@search.score": 0.45867884,
"uniqueid": "5",
"Name": null,
"Kvp": [
"1234||sepultura",
"999||programmer",
"876||no education"
],
"Kvp2": "1234||sepultura, 999 programmer, 876||no education"
},
{
"@search.score": 0.38223237,
"uniqueid": "1",
"Name": null,
"Kvp": [
"1234||metallica",
"999||horse education",
"876||high school"
],
"Kvp2": "1234||metallica, 999 horse education, 876||high school"
},
{
"@search.score": 0.38223237,
"uniqueid": "3",
"Name": null,
"Kvp": [
"1234||john mayer",
"999||kid education",
"876||university"
],
"Kvp2": "1234||john mayer, 999 kid education, 876||university"
}
]
}
Мой поисковый запрос выглядит так:
Kvp: education&$count=true&queryType=full&searchMode=all
Проблема в том, что я хотел бы избежать получения uniqueid 5.Хотя в качестве значения одного из тегов указано «образование», это не ключ 999.
Также пробовал:
Kvp: 999||education&$count=true&queryType=full&searchMode=all
Kvp: /.*999.*/ AND /.*education.*/&$count=true&queryType=full&searchMode=all
Kvp: /999.*education/&$count=true&queryType=full&searchMode=all