Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve Save query criteria and Remove query criteria function entry #8412

Closed
zhoutaosheng opened this issue May 30, 2023 · 16 comments
Closed
Assignees
Milestone

Comments

@zhoutaosheng
Copy link

In what scenarios do you need this feature?

有很多情况,用户想要保留之前的查询文本,比如:

  1. 切换搜索的查询条件时
    image

  2. 用户有非常大的概率,在下一次查询时,用之前的查询文本。比如上一次查询进了一个页面,发现不是想要的,就需要再输入一遍,或者从搜索历史下拉框找到之前的查询文本

在论坛中,已经有多人提到这个问题,希望考虑

Describe the optimal solution

....

Describe the candidate solution

No response

Other information

No response

@Vanessa219
Copy link
Member

可参照 #7988 ,还有问题的话我们继续讨论。

@zhoutaosheng
Copy link
Author

可参照 #7988 ,还有问题的话我们继续讨论。

看了相关的帖子,理解最大的问题可能是:保留上一次查询文本与现有的命名查询,在设计上有一定冲突

但这个问题,反复有人提出,被反复讨论。说明:保留上一次查询文本是一个非常自然而然的设计,无论是各种IDE(Jetbrains、VS),还是各种文本编辑器,都在搜索时保留上一次查询文本

当然命名查询也是非常好的设计,能解决很多问题,比如全局搜索时,内容过多,提前设计命名查询过滤不同的内容块

对于用户而言,两个都好,两个都要。设计上,不知道可不可以,二者结合

  1. 在Ctrl+P,打开搜索时
  • 命名查询使用上一次的命名查询,跟现在保持一致
  • 文本,用上一次的查询文本
  1. 如果用户选中文本,在Ctrl+P,打开搜索时
  • 命名查询使用上一次的命名查询,跟现在保持一致
  • 文本使用用用户选中的文本

当然用户并不知道实现上的问题,所以一切以siyuan自己的设计思路为准。

不过,有另一个更小的建议,能否给搜索历史一个快捷键,比如Jetbrains IDE,会给Alt + ↓,弹出搜索历史
image

@Vanessa219
Copy link
Member

第二点目前是这样的,如果不是的话麻烦描述一下重现步骤。第一点也许可以再改进下。

alt+上下 我这里会直接更新搜索关键字,不是弹出历史列表。

@zhoutaosheng
Copy link
Author

第二点目前是这样的,如果不是的话麻烦描述一下重现步骤。第一点也许可以再改进下。

确实是这样的,赞

alt+上下 我这里会直接更新搜索关键字,不是弹出历史列表。

我这里,Alt + ↓Alt + ↑,跟直接的效果,是一样的,在搜索结果中导航,不会使用Search History中的查询,来作为当前的查询文本

@Vanessa219 Vanessa219 self-assigned this May 31, 2023
@littlecoby
Copy link

附议一下,这里和论坛原贴已经描述的很贴切(至少我的)实际使用情况了

@88250 88250 changed the title 建议搜索时,保留上一次搜索的查询文本 建议搜索时保留上一次搜索的查询文本 Jun 2, 2023
@Vanessa219
Copy link
Member

  1. 想了下还是有点问题,那搜索条件、目录什么的都无法保存上一次的。如果都保存上一次的,这样就失去了保存查询条件的意义。现在只要点击了清空查询条件都会保存上一次的,或者把清空查询条件移到查询条件的前面并改名为保存上一次查询?
image
  1. Alt+↓/↑ select search history keyword #8446

@littlecoby
Copy link

littlecoby commented Jun 5, 2023

搜索条件有很多项目:搜索文本,路径,路径是否包含子文档,搜索方式,类型,排序,分组,布局。试着捋一捋(1)打开搜索面板时,哪些项目应该和上一次保持一致;(2)“保存查询条件”时,应该保存其中哪些项目。

  1. 如果搜索界面像文档树一样是侧栏面板,更自然会认为“呼入/呼出”操作是在“显示/隐藏”面板,而不是“打开/关闭”。既然只是隐藏,那么重新显示的时候就应该是和上次一模一样的搜索条件。思源的搜索是弹框,但视为“显示/隐藏”应该更方便,即保持上一次搜索的所有条件,因为:
  • a. 用上一次的搜索条件概率大,如题主提出的第二点,或者不小心按掉了弹框(虽然几率不高)。
  • b. 即使不用上次搜索条件,清空新搜索要改动的地方(估计是文本、路径、包含子文档)也比重新输入一次简单,比如像上面评论的把“清空”按钮移动到更可及的地方。
  • c. 特殊情况如题主所说,如果已经选中了文本再打开搜索,那么文本替换为选中值,其它条件仍保留上一次。
  • d. Ctrl+p,Ctrl+f,Shift+Ctrl+f 各自需求有差异,上一次搜索条件应相互独立。要当前文档中搜索变为全局搜索可以简单清空路径,要全局变为当前可以增加一个“当前路径”按钮(除了路径外,其它条件不变)。
  1. “保存查询条件”应该保存的项目各人使用习惯不同,那就让用户自己在“设置”中选择保存哪些(我个人会选除了文本和路径之外的其它项目)。这样以下几点可能会更清晰:
  • a. 命名查询如何高亮显示(搜索中的命名查询移到输入框下 #7751):只要当前搜索条件中配置的项目与命名条件相同,就把相同的命名高亮;只要不同,就不高亮。这样也便于知道什么时候需要/不需要新保存一个命名查询。选择哪些项目是用户自己设的,所以可能不会迷惑。
  • b. 切换搜索的查询条件:把配置的项目变更为命名查询的值,而其它项目不变。比如我不配置文本,则切换命名查询时文本就不变,实现了题主说的第一点。
  • c. 更改配置项目:如果增删项目,之前保存的命名查询中的项目也随之增删,需要在“设置”中增加一个“确定”按钮,并警告点击“确定”后会发生的变化。用户配置哪些项目的习惯在一段时间内应该是恒定的,所以修改是一个低频事件,“确定”按钮也减少了误操作的可能性。写明警告之后,即使让之前保存的发生变化,也是用户在知情情况下自己选择的结果。

@Vanessa219
Copy link
Member

  1. 搜索放在面板上的话可以使用页签搜索来替代
  2. 这样会增加复杂度,一般普通用户可能会更难上手

IDEA 中好像没有保存查询条件这一说法,是不是我们加了这个功能后导致用户无法适应?也许这个需求是个导致灾难的伪需求?

@zhoutaosheng
Copy link
Author

  1. 搜索放在面板上的话可以使用页签搜索来替代
  2. 这样会增加复杂度,一般普通用户可能会更难上手

IDEA 中好像没有保存查询条件这一说法,是不是我们加了这个功能后导致用户无法适应?也许这个需求是个导致灾难的伪需求?

其实也不是,保存查询条件,还是比较有用的需求,比如下图中,用户设置了两组条件
image

  1. 在所有文档中查询,并且查询结果按文档分组
  2. 只查询标题和页面

这两组条件,如果没有保存查询条件这个功能,一点点勾选,还是比较麻烦的

@littlecoby
Copy link

  1. 搜索放在面板上的话可以使用页签搜索来替代
  2. 这样会增加复杂度,一般普通用户可能会更难上手

IDEA 中好像没有保存查询条件这一说法,是不是我们加了这个功能后导致用户无法适应?也许这个需求是个导致灾难的伪需求?

  1. 对,页签就像面板。这里是为了说明“保持上一次搜索的所有条件”的合理性。
  2. 上手的话不一定会增加复杂度,把默认设置设成和现在(v2.9.0)的一样就行了,使用上没有变化。从相关issue和论坛帖子来看,争议背后的主要分歧在于“保存查询条件”时应该包括哪些项目,让用户自己设置就能解决了。而且能让2a,b两点更清晰。

@Vanessa219
Copy link
Member

默认设置一样,还是无法解决新用户目前不知道怎么保留上一次查询的问题。我先把清空放在外面并更改一下文案,再看看还有没有人报这样的问题。

@littlecoby
Copy link

littlecoby commented Jun 9, 2023

顺便建议加两个按钮:
(1)“清空查询文本”,方便查询文本比较长时快速清空,比如放在搜索框前;
(2)“使用当前路径”,可以快速切换到只搜索当前文档,比如放在“指定路径”旁边。

又想了想,“保存查询条件”要设计好感觉挺难的,查询条件太丰富了,导致要考虑的情况很多。比如切换查询条件时想要保留之前的文本,看上去是个很常见合理的需求,但搜索方式为关键字和SQL时,文本格式是不一样的,这种情况下保留文本就不那么合理。

还是觉得主要问题在于保存查询条件时应该包括哪些项目,其中主要是文本和路径。如果只想切换类型组合,可能不想保存文本;如果通过SQL查询,可能想保存文本。这样的话我之前的想法不大合适。(#8412 (comment))

一个想法是,在每次保存查询条件时可选择是否保存文本和路径,这样可以满足不同需求。如果不保存文本/路径,切换到这个查询条件时,当前的文本/路径就不变。

image

对于命名查询的高亮问题,可以只要当前搜索条件与某个命名查询条件完全相同,就高亮;只要有不同,就不高亮。如果命名查询没保存文本/路径,判断是否相同时就不匹配文本/路径,即修改文本后依然高亮。(#7751 (comment))

@zhoutaosheng
Copy link
Author

  1. 搜索放在面板上的话可以使用页签搜索来替代
  2. 这样会增加复杂度,一般普通用户可能会更难上手

IDEA 中好像没有保存查询条件这一说法,是不是我们加了这个功能后导致用户无法适应?也许这个需求是个导致灾难的伪需求?

另外,查询条件中,除了包含查询类型、排序之类、是否分组的条件之外,还包含了查询文本,不知道这是不是造成这块功能很难设计的原因
我觉得,查询条件,不应该包含查询文本

@Vanessa219
Copy link
Member

我觉得,查询条件,不应该包含查询文本
如果不包含的话,这个保存查询条件就会有缺失

@littlecoby 感觉为了避免这个问题,加深其他操作的复杂度来进行解决可能会引入更多的问题。

@littlecoby
Copy link

“罪魁祸首”还是“保存查询条件”以及可选项太多了 hhh,不确定用户们的使用习惯。

上面提议的是否保存文本和路径猜想是容易习惯不同的地方,所以加个可选项。如果都勾上,就和现在相同,使用上没有改变。

@Vanessa219
Copy link
Member

这个版本先添加清空查询条件按钮后再看看反馈吧

@Vanessa219 Vanessa219 changed the title 建议搜索时保留上一次搜索的查询文本 Move Save query criteria and Remove query criteria below search Jun 15, 2023
@Vanessa219 Vanessa219 added this to the 2.9.2 milestone Jun 15, 2023
@88250 88250 changed the title Move Save query criteria and Remove query criteria below search Improve Save query criteria and Remove query criteria function entry Jun 15, 2023
Vanessa219 added a commit that referenced this issue Jun 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants