On Wed, Jul 27, 2011 at 10:04 PM, Marius Dumitru Florea <
mariusdumitru.florea(a)xwiki.com> wrote:
On 07/27/2011 04:30 PM, 许凌志(Jamesxu) wrote:
2011/7/27 Marius Dumitru
Florea<mariusdumitru.florea(a)xwiki.com>
> On 07/27/2011 12:24 PM, 许凌志(Jamesxu) wrote:
>> I found that if there is no input for lucene query, no results will be
>> returned. But In link suggestion, when user first type "[[", there is
no
>> queries, so no suggestions will be got,
but Marius and I excepted there
> is a
>> default suggestion results for users, like the recent modified pages,
and
>> the attachments belong to the current
edited pages if exists.
>>
>> Marius give me wiki page: Panels.Recently Modified, there is an page
> object
>> for getting the Recently Modeified pages. I have tried to enhance this
>> object so that it can return json results which can be used as a web
>> service, so I edit the content of the object of this page, the code is
>> below:
>> {{velocity}}
>> *#set($media = "$!request.media")*
>> #set ($recentlyModified = $xwiki.searchDocuments('where 1=1 order by
>> doc.date desc', 5, 0))
>> #if ($recentlyModified.size()> 0 || $showEmptyPanels)
>> *#if($media == 'json')
>> $response.setContentType("application/json")
>> {'test':'mytest'}*
>> #else
>> #panelheader($msg.get('panels.recentlyModified.title'))
>> #foreach ($docname in $recentlyModified)
>> #if ($xwiki.hasAccessLevel('view', $xcontext.getUser(),
$docname))
>> #set ($rdoc =
> $xwiki.getDocument($docname).getTranslatedDocument())
>> #if ($foreach.index> 0)
>> (% class="pitemseparator" %) ~| (%%)##
>> #end
>> (% class="panelitem" %)[[$rdoc.plainTitle>>$rdoc]](%%)##
>> #end
>> #end
>> #end
>> #panelfooter()
>> #end
>> {{/velocity}}
>>
>> as you can see, I add an parameter named "media", if the media is
json,
> then
>> return the json file, otherwise the default behaviour will be executed.
I
>> tested the code above, and the json
result is not
"*{'test':'mytest'}*",
but
contains some other html tags.
Can anyone tell me why?
James, you have to call the page like you did with your initial fake
link suggestion service and with the XWiki.SuggestLuceneService page:
?xpage=plain&outputSyntax=plain
Yes, I have tried the url:
http://localhost:8080/xwiki/bin/get/Panels/Recently+Modified?xpage=plain&am…
but still can't get the right result.
What about
http://localhost:8080/xwiki/bin/get/Panels/Recently+Modified?outputSyntax=p…
?
Still got the results which are not excepted:
Name
Recently Modified
Panel type
view
Category
Information
Description
Content
>
> Hope this helps,
> Marius
>
>>
>> On Tue, Jul 26, 2011 at 3:57 PM, Sergiu Dumitriu<sergiu(a)xwiki.com>
> wrote:
>>
>>>
>>>
>>> On 07/25/2011 05:08 AM, 许凌志(Jamesxu) wrote:
>>>> Hi All, how can I query the attachments of a specific page, for
example
>>>> "Main.testpage"
>>>>
>>>> I found if I use the query
>>>> space:Main AND filename:__INPUT__* AND type:attachment
>>>> I can get the attachments only from the Main space.
>>>>
>>>> but how about a specific page, I have tried
>>>> page:Main.testpage AND filename:__INPUT__* AND type:attachment
>>>> wikipage:Main.testpage AND filename:__INPUT__* AND type:attachment
>>>> but no one can give the right results.
>>>
>>> To see which fields are indexed, you can look at the Java sources,
>>> starting from
>>>
>>>
>
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwi…
>>>
>>> The document name is indexed both as "name", which holds just the
name,
>>> without the space, and
"fullname", which contains the space as well --
>>> Space.Document
>>>
>>>> On Wed, Jul 20, 2011 at 5:56 PM, Eduard
Moraru<enygma2002(a)gmail.com>
>>> wrote:
>>>>
>>>>> Hi James,
>>>>>
>>>>> That's just a query problem. The queries that are used for the
search
>>>>> suggest are located in
XWiki.SearchSuggestConfig. The query for
> Document
>>>>> Name/Content are not complete. They also need to specify that the
> result
>>>>> should be a document, and not anything (like attachments for
> instance).
>>> The
>>>>> correct query for searching for documents by document name should
be:
>>>>>
>>>>> name:__INPUT__* AND type:wikipage
>>>>>
>>>>> For attachment name, the correct query should be:
>>>>>
>>>>> filename:__INPUT__* AND type:attachment
>>>>>
>>>>> So, for your usecase (quering documents by name or attachments by
> name),
>>>>> the
>>>>> query should be:
>>>>>
>>>>> (filename:__INPUT__* AND type:attachment) OR (name:__INPUT__* AND
>>>>> type:wikipage)
>>>>>
>>>>> I`ve tested it out by creating a page named "IconTest" and
then
>>> searching
>>>>> for "icon". The results were:
>>>>>
>>>>> <results>
>>>>> <rs
id="/xwiki/bin/download/XWiki/RequestsStatus/icon.png"
>>>>> info="XWiki.RequestsStatus">icon.png</rs>
>>>>> <rs
id="/xwiki/bin/download/XWiki/ExtensionManager/icon.png"
>>>>> info="XWiki.ExtensionManager">icon.png</rs>
>>>>> <rs
id="/xwiki/bin/download/Panels/PanelWizard/icon.png"
>>>>> info="Panels.PanelWizard">icon.png</rs>
>>>>> <rs
id="/xwiki/bin/download/XWiki/OfficeImporterAdmin/icon.png"
>>>>> info="XWiki.OfficeImporterAdmin">icon.png</rs>
>>>>> <rs id="/xwiki/bin/download/XWiki/SearchAdmin/icon.png"
>>>>> info="XWiki.SearchAdmin">icon.png</rs>
>>>>> <rs id="/xwiki/bin/download/Blog/Categories/icon.png"
>>>>> info="Blog.Categories">icon.png</rs>
<-----------
>>> attachments
>>>>> <rs id="/xwiki/bin/view/Main/IconTest"
>>>>> info="Main.IconTest">IconTest</rs>
<-----------
> documents
>>>>> </results>
>>>>>
>>>>> Ignore the fact that the result is in XML, you can make it json, as
>>>>> suggested in my previous mail.
>>>>>
>>>>> Hope that works for you.
>>>>>
>>>>> Thanks,
>>>>> Eduard
>>>>>
>>>>> 2011/7/20 许凌志(Jamesxu)<lingzhixu326(a)gmail.com>
>>>>>
>>>>>> Thanks Eduard very much, It is really helpful, today I am trying
to
> use
>>>>>> SuggestLuceneService to test the autosuggestion functions, I
found
a
>>>>>> problem.
>>>>>>
>>>>>> For example, I create a page named "jamesxu", and
upload an
> attachment
>>>>>> named
>>>>>> "autosuggest1.js", then I input the query
"jame" to the search box
on
>>> the
>>>>>> top right of the page, the suggestion list shows up, but the
results
> in
>>>>> the
>>>>>> "Document Name" and "Document Content"
contains both the wiki page
>>>>>> "jamesxu"
>>>>>> and its attachment "autosuggest1.js", this behaviour is
not
excepted
> in
>>>>> the
>>>>>> autosuggestion features of the editor, because when user types
> "jame“,
>>> he
>>>>>> really wants to query the wiki page or attachment begin with or
>>> contains
>>>>>> "jame", the attachment "autosuggest1.js"
does not contains "jame",
> it
>>>>>> should not be included in the suggestion results.
>>>>>>
>>>>>> On Tue, Jul 19, 2011 at 10:14 PM, Eduard Moraru<
enygma2002(a)gmail.com
>>>>>>> wrote:
>>>>>>
>>>>>>> Hi James,
>>>>>>>
>>>>>>> I agree with Marius that you should reuse as much as possible
what
>>>>>> already
>>>>>>> exists instead of creating an alternate service that does, in
a
> great
>>>>>>> proportions, the same as an existing one but has one extra
feature.
>>>>>>>
>>>>>>> So, as I was browsing trough REST's resources, I noticed
an
>>>>> undocumented
>>>>>>> "/wikis/{wikiName}/attachments" [1] resource at the
wiki level
that
> is
>>>>>> able
>>>>>>> to search for attachments. As you can see from the
method's
> signature,
>>>>> it
>>>>>>> accepts parameters to filter your search by attachment name,
page,
>>>>> space,
>>>>>>> author, and type. I will fix the REST API documentation and
include
>>> it.
>>>>>>>
>>>>>>> This resource should do the trick for what you need, used in
>>>>> conjunction
>>>>>>> with the search resource that should handle documents.
>>>>>>>
>>>>>>> The advantage of this is that you can get json, as you did
for the
>>>>> search
>>>>>>> resource.
>>>>>>> The disadvantage of the whole REST API, for your needs, might
be
> that
>>>>> it
>>>>>> is
>>>>>>> limited at wiki level and can not perform a multi-wiki search
in
one
>>>>>> query
>>>>>>> (wihout you having to do a search for each wiki).
>>>>>>>
>>>>>>> On the other side, the Lucene search does not have this
problem
>>> because
>>>>>> it
>>>>>>> indexes all the wikis and can perform searches on all wikis
in one
>>>>> query
>>>>>>> and
>>>>>>> it does it much faster than REST (which uses database
queries).
> Also,
>>>>>>> lucene
>>>>>>> is used in the search suggest (the one at the top-right
corner of
> the
>>>>>>> screen) and in the main XWiki search as well, so it would be
much
>>>>> better
>>>>>> if
>>>>>>> the results were consistent. Besides this, if the lucene
system is
>>>>>> improved
>>>>>>> over time, your results will also be improved as a result.
>>>>>>>
>>>>>>> So my suggestion is that you modify
XWiki.SuggestLuceneService and
>>> make
>>>>>> it
>>>>>>> accept a "media" parameter (or something similar)
that should
accept
>>> at
>>>>>>> least 2 values: "xml"(default) and
"json". Based on this value,
you
>>> can
>>>>>>> wrap
>>>>>>> the results of the lucene search into a basic json structure
that
> you
>>>>> can
>>>>>>> easily use in your suggest box. You can check [2][3] and [4]
for
>>>>>> references
>>>>>>> of how to use Lucene search in XWiki.
>>>>>>> Once you are done with it, you can even do a pull request so
that
> this
>>>>>>> feature gets integrated into XWiki.
>>>>>>>
>>>>>>> The best and cleanest solution would be that the REST search
> resource
>>>>>> used
>>>>>>> internally lucene instead of a custom database query and that
there
>>>>> would
>>>>>>> be
>>>>>>> a single search back-end (preferably configurable in
> administration).
>>>>>>> Anyway, it's not your job to fix XWiki :) so making
>>>>>>> XWiki.SuggestLuceneService return json too is the best way to
go
> right
>>>>>> now,
>>>>>>> IMO.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Eduard
>>>>>>>
>>>>>>> -----------------
>>>>>>> References:
>>>>>>> [1]
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>
>
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwi…
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwi…
>>>>>>> [4]
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>
>
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwi…
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Jul 19, 2011 at 8:36 AM, 许凌志(Jamesxu)<
> lingzhixu326(a)gmail.com
>>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi, these days I need to implement the rest services for
getting
>>>>>>> suggestion
>>>>>>>> results for link autosuggestion. In my design, I think
the
> suggestion
>>>>>>>> results should be filtered and ranked by the following
conditions.
>>>>>>>> (for example user
types "[[mytest" in page "xwiki:main.newpage")
>>>>>>>> First [[ is triggered, when user keep typing, the page
and
> attachment
>>>>>>>> suggestion results should be filtered and ranked by the
following
>>>>>> rules:
>>>>>>>> 1. Prefix matched (only for page name and attachment
name)
>>>>>>>> - The pages which are in the same wiki and space of
the
> document
>>>>>>> current
>>>>>>>> edited.( Prior A)
>>>>>>>> - The pages which are in the same wiki but different
space
of
> the
>>>>>>>> document current edited;(Prior B)
>>>>>>>> - The pages which are in different wiki and
different space
of
> the
>>>>>>>> document current edited; (Prior C);
>>>>>>>> 2. Partial matched (only for page name and attachment
name)
>>>>>>>> - The pages which are in the same wiki and space of
the
> document
>>>>>>> current
>>>>>>>> edited.( Prior C)
>>>>>>>> - The pages which are in the same wiki but different
space
of
> the
>>>>>>>> document current edited;(Prior D)
>>>>>>>> - The pages which are in different wiki and
different space
of
> the
>>>>>>>> document current edited; (Prior E)
>>>>>>>> 3. If no page and attachment matches the above two rules,
the
>>>>>> suggestion
>>>>>>>> box will be disappeared.(eclipse way)
>>>>>>>>
>>>>>>>> However, sometimes user might insert the space name too,
for
> example,
>>>>>>> user
>>>>>>>> will type "[[Main", following the rule 1 and
rule 2, the pages
> begins
>>>>>>> with
>>>>>>>> "Main" will be first retrieved as the
suggestion results untill
> user
>>>>>>> types
>>>>>>>> "." after "Main", the suggestion
result will be retreved from the
>>>>> pages
>>>>>>>> under the space "Main" only. Filters still obey
the above three
>>>>> rules.
>>>>>>>> And also when user types "attach:", the
suggestion result will be
>>>>>>> retrieved
>>>>>>>> the attachments only following the above three rules.
>>>>>>>> And if the link is under the attachment context, when
"@" is
typed,
>>>>> the
>>>>>>>> attachments only will be retrieved following the above
three
rules.
>>>>>>>>
>>>>>>>> In order to do this, I investigated the rest services
already
>>>>> existed(
>>>>>>>>
http://platform.xwiki.org/xwiki/bin/view/Features/XWikiRESTfulAPI
> ),
>>>>>> but
>>>>>>> I
>>>>>>>> found none is perfect suitable for my needs. So I talk
with
Marius,
>>>>> he
>>>>>>>> suggested me to use the existed services which are closed
to my
> needs
>>>>>>>> first,
>>>>>>>> and then write the perfect one later.
>>>>>>>>
>>>>>>>> However, I only found the rest
service:/wikis/{wiki}/search is
the
>>>>>> most
>>>>>>>> closed one for the pages suggestion to my needs, there is
no
>>>>> attachment
>>>>>>>> search rest service for attachment suggestion, Marius
adviced me
to
>>>>> use
>>>>>> "
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>
>
http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax…
<
http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax…
> <
>
http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax…
>>
>>> <
>>>
>
http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax…
>>>>
>>>>> <
>>>>>
>>>
>
http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax…
>>>>>>
>>>>>> <
>>>>>>
>>>>>
>>>
>
http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax…
>>>>>>>
>>>>>>> <
>>>>>>>
>>>>>>
>>>>>
>>>
>
http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax…
>>>>>>>>
>>>>>>>> "
>>>>>>>> instead, but I found the search result is in xml
format(not
json),
>>> and
>>>>> also
>>>>>> the information of the results got from SuggestLuceneService is
>>> limit.
>>>>>>
>>>>>> I have read the document of how to write custom rest service, but
the
>>>>>> information is limit, any
one can guide me to run an helloworld?
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Best wishes,
>>>>>>
>>>>>> 许凌志(Jame Xu)
>>>>>>
>>>>>> MOE KLINNS Lab and SKLMS Lab, Xi'an Jiaotong University
>>>>>>
>>>>>> Department of Computer Science and Technology, Xi’an Jiaotong
>>>> University
>>>>>> _______________________________________________
>>>>>> devs mailing list
>>>>>> devs(a)xwiki.org
>>>>>>
http://lists.xwiki.org/mailman/listinfo/devs
>>>>>>
>>>>> _______________________________________________
>>>>> devs mailing list
>>>>> devs(a)xwiki.org
>>>>>
http://lists.xwiki.org/mailman/listinfo/devs
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Best wishes,
>>>>
>>>> 许凌志(Jame Xu)
>>>>
>>>> MOE KLINNS Lab and SKLMS Lab, Xi'an Jiaotong University
>>>>
>>>> Department of Computer Science and Technology, Xi’an Jiaotong
> University
>>>> _______________________________________________
>>>> devs mailing list
>>>> devs(a)xwiki.org
>>>>
http://lists.xwiki.org/mailman/listinfo/devs
>>>>
>>> _______________________________________________
>>> devs mailing list
>>> devs(a)xwiki.org
>>>
http://lists.xwiki.org/mailman/listinfo/devs
>>>
>>
>>
>>
>
> --
> Sergiu Dumitriu
>
http://purl.org/net/sergiu/
> _______________________________________________
> devs mailing list
> devs(a)xwiki.org
>
http://lists.xwiki.org/mailman/listinfo/devs
>
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
--
Best wishes,
许凌志(Jame Xu)
MOE KLINNS Lab and SKLMS Lab, Xi'an Jiaotong University
Department of Computer Science and Technology, Xi’an Jiaotong University