アプリの一覧画面上部に検索窓を作成しましたがあいまい検索ができません。
検索したい例は下記の通りです。
検索場所:文字列
1.1234K5
2.3456H7
3.4567R8
検索文字:34
検索結果:2件(1と2)
例えば文字で検索をかけるとあいまい検索することができます。
数字になると検索結果が見つからない状態になるのです。
また、ルーペで同じようにあいまい検索をしても見つかりません。
数字ではあいまい検索できないのでしょうか?
該当のコードは下記のように記載しました。
(function () {
‘use strict’;
const FIELD_CODE = '管理番号';
const FIELD_NAME1 = '表題';
const FIELD_NAME2 = '住所';
const UI_CONFIG = {
TOOLTIP: 'キーワードをスペースで区切ってAND検索可能',
SEARCH_BUTTON: '検索',
CLEAR_BUTTON: '条件クリア'
};
kintone.events.on("app.record.index.show", function (event) {
var node_space = kintone.app.getHeaderMenuSpaceElement();
for (var i = node_space.childNodes.length - 1; i >= 0; i--) {
node_space.removeChild(node_space.childNodes[i]);
}
// 検索キーワード
var search_word = document.createElement('input');
search_word.type = 'text';
search_word.title = UI_CONFIG.TOOLTIP;
// 検索ボタン
var search_button = document.createElement('input');
search_button.type = 'submit';
search_button.value = UI_CONFIG.SEARCH_BUTTON;
search_button.onclick = function () {
keyword_search();
};
// 条件クリアボタン
var clear_button = document.createElement('input');
clear_button.type = 'button';
clear_button.value = UI_CONFIG.CLEAR_BUTTON;
clear_button.onclick = function () {
search_word.value = '';
document.location = location.origin + location.pathname;
};
// キーワード検索の関数
function keyword_search() {
var keywords = search_word.value.split(/\s+/);
var queryParts = [];
keywords.forEach(function (kw) {
if (kw !== "") {
var part = '(';
var wildcardKeyword = '*' + kw + '*';
part += FIELD_CODE + ' like "' + wildcardKeyword + '" or ';
part += FIELD_NAME1 + ' like "' + wildcardKeyword + '" or ';
part += FIELD_NAME2 + ' like "' + wildcardKeyword + '"';
part += ')';
queryParts.push(part);
}
});
// クエリの生成
var str_query = queryParts.length > 0 ? '?query=' + queryParts.join(' and ') : '';
console.log('keywords:', keywords);
console.log('queryParts:', queryParts);
console.log('str_query:', str_query);
document.location = location.origin + location.pathname + str_query;
}
// ラベルとボタンの配置
var label = document.createElement('label');
label.appendChild(search_word);
label.appendChild(document.createTextNode(' '));
label.appendChild(search_button);
label.appendChild(document.createTextNode(' '));
label.appendChild(clear_button);
kintone.app.getHeaderMenuSpaceElement().appendChild(label);
return event;
});
})();
過去の質問なども確認したのですが、情報が古くリンクが切れたりしていました。
ご教授いただければ幸いです。